⍝ 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│
└───┴───┘

Back to: code

Back to: Workspaces