⍝ Make NS from association list ⍵:
⎕io←1
alist←('mat'2,⊂2 3⍴⍳6) ('sub'9,⊂('dup'3,⊂,⊂'dup←{⍵ ⍵}')('oper'4,⊂,⊂'oper←{⍺⍺ ⍵}')) ('spin'3,⊂,⊂'spin←{⍉¨⍵}')
alist
┌─────────────┬────────────────────────────────────────────────────┬─────────────────────┐
│┌───┬─┬─────┐│┌───┬─┬────────────────────────────────────────────┐│┌────┬─┬────────────┐│
││mat│2│1 2 3│││sub│9│┌───────────────────┬──────────────────────┐│││spin│3│┌──────────┐││
││ │ │4 5 6│││ │ ││┌───┬─┬───────────┐│┌────┬─┬─────────────┐││││ │ ││spin←{⍉¨⍵}│││
│└───┴─┴─────┘││ │ │││dup│3│┌─────────┐│││oper│4│┌───────────┐│││││ │ │└──────────┘││
│ ││ │ │││ │ ││dup←{⍵ ⍵}││││ │ ││oper←{⍺⍺ ⍵}│││││└────┴─┴────────────┘│
│ ││ │ │││ │ │└─────────┘│││ │ │└───────────┘││││ │
│ ││ │ ││└───┴─┴───────────┘│└────┴─┴─────────────┘│││ │
│ ││ │ │└───────────────────┴──────────────────────┘││ │
│ │└───┴─┴────────────────────────────────────────────┘│ │
└─────────────┴────────────────────────────────────────────────────┴─────────────────────┘
(mns alist).(spin sub.(dup oper) mat) ⍝ check it out.
┌───┬───┐
│1 4│1 4│
│2 5│2 5│
│3 6│3 6│
└───┴───┘
⍝∇ mns
Back to: code
Back to: Workspaces