>>
<<
Ркв
Ввд
JfC
LJ
Фрз
Слв
Изм
Рзг
!:
Помощь
Словарь
{::y упакован так же как и y , а все его
элементы представляют собой пути к каждому листу (каждому не упаковочному
под-массиву).
|
|
x{::y достает под-массив из y , в соответствии с
путем x ; выборка на каждом уровне основывается
на { и, кроме последнего уровня, ее результатом должен быть атом.
|
Пути и Достать моделируются следующим образом:
cat =: { @: (i.&.>) @: $
mapp =: 4 : 'if. L. y do. (<"0 x,&.><"0 cat y) mapp&.> y else. >x end.'
map =: a:&mapp
fetch=: >@({&>/)@(<"0@|.@[ , <@]) " 1 _
Следующие фразы иллюстрируют использование глаголов Пути и Достать:
] y=: 1 2 3;4 5;i.4 5
+-----+---+--------------+
|1 2 3|4 5| 0 1 2 3 4|
| | | 5 6 7 8 9|
| | |10 11 12 13 14|
| | |15 16 17 18 19|
+-----+---+--------------+
(2;_1 _1){::y | Число 19 |
(_1;3 4) {::y | Число 19 |
{::y | Пути к каждому распакованному массиву |
{::cat L: 0 y | Пути к каждому распакованному скаляру |
] t=: 5!:2 <'fetch' Массив с интересной структурой
+------------------------------------------------------+-+---+
|+-----------------+-+--------------------------------+|"|1 _|
||+-+-+-----------+|@|+--------------------+-+-------+|| | |
|||>|@|+-------+-+|| ||+--------------+-+-+|,|+-+-+-+||| | |
||| | ||+-+-+-+|/||| |||+-------+-+--+|@|[|| ||<|@|]|||| | |
||| | |||{|&|>|| ||| ||||+-+-+-+|@||.|| | || |+-+-+-+||| | |
||| | ||+-+-+-+| ||| |||||<|"|0|| | || | || | ||| | |
||| | |+-------+-+|| ||||+-+-+-+| | || | || | ||| | |
||+-+-+-----------+| |||+-------+-+--+| | || | ||| | |
|| | ||+--------------+-+-+| | ||| | |
|| | |+--------------------+-+-------+|| | |
|+-----------------+-+--------------------------------+| | |
+------------------------------------------------------+-+---+
(0;2;0;0;0){:: t |
Достать под-массив, соответствующий <"0 in t |
(0;2;0;0;0;_1){:: t |
Выбрать 0 там |
t ,&< L: 0 1 {:: t |
Пометить каждый лист путем к нему |
< S: 0 t |
Упакованные листья t |
< S: 1 {:: t |
Упакованные пути в t |
t ,&< S: 0 1 {:: t |
Матрица из двух столбцов: листья и пути |
# 0: S: 0 t |
Количество листьев в t |
>>
<<
Ркв
Ввд
JfC
LJ
Фрз
Слв
Изм
Рзг
!:
Помощь
Словарь