> А мой вариант на Си не структурный? У него один вход и один выход.
> Что и есть по вашему определению структурность. Или отреклись уже? :)
Формально выход один, так что по сформулированному мной определению, да,
структурно.
> При этом у меня процедура вроде правильно работает. А ваша на
> Алголе-68 ошибится индексированием — операция and в Алголе-68 не ленивая :)
Спасибо, поправил. :-)
proc sift = (ref [] T a, int n, int p) void: (
int j;
T x := a[p];
while (
if j := 2*p + 1; (j + 1 < n | a[j] < a[j + 1] | false) then j +:= 1;
(j < n| a[j] > x | false)
) do
a[p] := a[j]; p := j
od;
a[p] := x
)
Заодно понял, для чего нужна сокращённая запись if.
-----Original Message-----
From: Boyko Bantchev [mailto:[email protected]]
Sent: Thursday, August 10, 2017 11:57 AM
To: [email protected]
Subject: Re: FW: Рефал умер?
> Красота. И никаких break’ов и goto. Структурное программирование :-)
А мой вариант на Си не структурный? У него один вход и один выход.
Что и есть по вашему определению структурность. Или отреклись уже? :)
При этом у меня процедура вроде правильно работает. А ваша на
Алголе-68 ошибится индексированием — операция and в Алголе-68 не ленивая :)