]report=: i. 2 4 3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ($ ; # ; #@$) report Размерность, число элементов, ранг +-----+-+-+ |2 4 3|2|3| +-----+-+-+Последние k измерений составляют k-ячейку существительного; 0-ячейками существительного report являются атомы (например: 4 и 14), 1-ячейками являются трех-элементные квартальные отчеты, а 2-ячейками (главными ячейками или элементами) два годовых отчета размерности четыре на три.
,report 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ,"2 report 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 <@i. s=: 2 5 +---------+ |0 1 2 3 4| |5 6 7 8 9| +---------+ <@i."0 s +---+---------+ |0 1|0 1 2 3 4| +---+---------+Для диад можно указать левый и правый ранги. Тоесть:
10 11 12 (,"0 1 ; ,"1 1 ; ,"1) 0 1 2 +--------+--------------+--------------+ |10 0 1 2|10 11 12 0 1 2|10 11 12 0 1 2| |11 0 1 2| | | |12 0 1 2| | | +--------+--------------+--------------+Наречие свойства b. очень полезно для анализа функций (или выражений их определяющих) на предмет ранга. Например:
(# b. 0) ; (+/\ b. 0) ; (+/\ % #) b. 0 +-----+-----+-----+ |_ 1 _|_ 0 _|_ _ _| +-----+-----+-----+
Упражнения
20.1 | Посмотрите на результаты следующих монад, произведенных союзом
с рангом, и прокомментируйте их: a=: i. 3 4 5 <"0 a <"1 a <"2 a <"3 a < a <"_1 a <"_2 a mean=: +/ % # mean a mean"1 a mean"2 aОтвет: <"k применяет < к каждой ячейке ранга k , причем <"(#$a) a эквивалентно <a . Отрицательное значение k обозначает дополнительный ранг, соответствующий обычному рангу в виде разности ранга аргумента a и |k . |
20.2 | Установите связь
между союзами @ (Поверх)
и @: (Над) при помощи следующих экспериментов;
сравните свои выводы с определениями
в словаре: (g=: <"2) a=: i. 3 4 5 |. @: g a |. @ g a |: @: (<"1) a |: @ (<"1) aОтвет: Функция |. @: g имеет бесконечный ранг, а значит |. применяется к результату g целиком, меняя порядок элементов в нем. С другой стороны, функция f @ g наследует ранг g , а значит |. в ней применяется индивидуально к каждому атому результата g , не производя никакого эффекта. |
20.3 | Проведите следующие эксперименты и прокомментируйте
использование союза с рангом к диадам: b=: 'ABC' c=: 3 5 $ 'abcdefghijklmno' c b,c b ,"0 1 c b ,"1 1 c b ,"1 c |