select. T case. T0 do. B0 case. T1 do. B1 fcase. T2 do. B2 case. T3 do. B3 end.Производится последовательное сравнение результата R блока T с результатами Ri блоков Ti , совпадение приводит к выполнению блока Bi соответствующего case. или fcase. . Если совпадение было в case. , выполнение конструкции select. заканчивается. Если в fcase. , выполняется следующий блок B(i+1) (и далее, если он тоже в fcase.). Сравнение осуществляется как R e.&boxifopen Ri , где boxifopen=:<^:(L.=0:). Отсутствие Ti считается совпадением. |
f0=: 3 : 0 select. y case. 1;2 do. 'one two' case. 3 do. 'three' case. 4;5 do. 'four five' case. 6 do. 666 end. ) f0&.> 1 2 3 4 5 6 +-------+-------+-----+---------+---------+---+ |one two|one two|three|four five|four five|666| +-------+-------+-----+---------+---------+---+ (i.0 0) -: f0 7 1 f1=: 3 : 0 select. y case. 'a' do. i.1 case. 'b' do. i.2 case. do. i.3 end. ) f1&.> 'a' ; ('a';'b') ; 'b' ; 'x' +-+-+---+-----+ |0|0|0 1|0 1 2| +-+-+---+-----+ f2=: 3 : 0 t=. '' select. y case. 1 do. t=.t,'one ' fcase. 2 do. t=.t,'two ' case. 3 do. t=.t,'three ' fcase. 4 do. t=.t,'four ' end. ) f2 1 one f2 2 two three f2 3 three f2 4 four '' -: f2 5 1