if. T do. B end. if. T do. B else. B1 end. if. T do. B elseif. T1 do. elseif. T2 do. B2 end.Результат последнего предложения в блоке T проверяется на ненулевое значение своего первого атома, определяя — выполняется ли блок B после do. или остальная часть конструкции. Пустой результат блока T или отсутствие блока T означают "истину". См. также конструкцию select. . |
plus=: 4 : 0 NB. Сложение для неотрицательных целых if. y do. >: x plus <: y else. x end. ) plus"0/~ i.5 0 1 2 3 4 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 sel=: 1 : 'x # [' quicksort=: 3 : 0 if. 1 >: #y do. y else. (quicksort y <sel e),(y =sel e),quicksort y >sel e=.y{~?#y end. ) quicksort 15 2 9 10 4 0 13 13 18 7 0 2 4 7 9 10 13 13 15 18 perm=: 3 : 0 NB. Все перестановки i.y if. *y do. ,/ (0 ,. perm&.<: y) {"2 1 \:"1 =i.y else. i.1 0 end. ) perm 3 0 1 2 0 2 1 1 0 2 1 2 0 2 0 1 2 1 0 test=: 3 : 0 if. 0<y do. 'positive' elseif. 0>y do. 'negative' elseif. do. 'zero' end. ) test&.> 5 _2.71828 0 +--------+--------+----+ |positive|negative|zero| +--------+--------+----+ test&.> '' ; 0 1 _2 ; _3 9 +--------+----+--------+ |positive|zero|negative| +--------+----+--------+