{::y 與 y 有相同的封裝且其分子為到每一葉片 (開啟陣列)的路徑。
|
|
x{::y 依據路徑 x 抓 y 的次陣列;每一層級的選擇根據
{ 且,除了最後層級,必須為原子。
|
地圖與抓可以建模如下:
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 |
抓對應於 t中 <"0 的次陣列 |
(0;2;0;0;0;_1){:: t |
Fetch 0 in that |
t ,&< L: 0 1 {:: t |
將各葉片以其路徑作標記 |
< S: 0 t |
t 的封裝葉片 |
< S: 1 {:: t |
t 的封裝路徑 |
t ,&< S: 0 1 {:: t |
葉片與路徑2-行式表 |
# 0: S: 0 t |
t 中葉片個數 |
下個 前個
字彙
索引
主選單