⍝ Scalar pervasion: 1(2 3),perv(4 5)6 ┌─────────┬─────────┐ │┌───┬───┐│┌───┬───┐│ ││1 4│1 5│││2 6│3 6││ │└───┴───┘│└───┴───┘│ └─────────┴─────────┘ ⍝ We could parameterize the maximum depth at which the ⍝ function is applied by passing it as a right operand: wwaw←{ ⍝ Function operand applied ⍵⍵-Array-Wise. ⍵⍵≥¯1+|≡⍺ ⍵:⍺ ⍺⍺ ⍵ ⍝ Both shallow enough: apply operand. ⍵⍵≥|≡⍵:∇∘⍵¨⍺ ⍝ ⍵ shallow: traverse ⍺. ⍵⍵≥|≡⍺:⍺∘∇¨⍵ ⍝ ⍺ shallow: traverse ⍵. ⍺ ∇¨⍵ ⍝ Both deep: traverse both. } p←(⊂1 2)(3 4) q←(5 6)(⊂7 8) ⍕disp¨p q ┌─────┬───┐ ┌───┬─────┐ │┌───┐│3 4│ │5 6│┌───┐│ ││1 2││ │ │ ││7 8││ │└───┘│ │ │ │└───┘│ └─────┴───┘ └───┴─────┘ p,perv q ┌─────────────────────┬─────────────────────┐ │┌─────────┬─────────┐│┌─────────┬─────────┐│ ││┌───┬───┐│┌───┬───┐│││┌───┬───┐│┌───┬───┐││ │││1 5│2 5│││1 6│2 6│││││3 7│3 8│││4 7│4 8│││ ││└───┴───┘│└───┴───┘│││└───┴───┘│└───┴───┘││ │└─────────┴─────────┘│└─────────┴─────────┘│ └─────────────────────┴─────────────────────┘ p(,wwaw 0)q ┌─────────────────────┬─────────────────────┐ │┌─────────┬─────────┐│┌─────────┬─────────┐│ ││┌───┬───┐│┌───┬───┐│││┌───┬───┐│┌───┬───┐││ │││1 5│2 5│││1 6│2 6│││││3 7│3 8│││4 7│4 8│││ ││└───┴───┘│└───┴───┘│││└───┴───┘│└───┴───┘││ │└─────────┴─────────┘│└─────────┴─────────┘│ └─────────────────────┴─────────────────────┘ p(,wwaw 1)q ┌─────────┬─────────┐ │┌───────┐│┌───────┐│ ││1 2 5 6│││3 4 7 8││ │└───────┘│└───────┘│ └─────────┴─────────┘ p(,wwaw 2)q ┌─────────┬─────────┐ │┌───┬─┬─┐│┌─┬─┬───┐│ ││1 2│5│6│││3│4│7 8││ │└───┴─┴─┘│└─┴─┴───┘│ └─────────┴─────────┘ p(,wwaw 3)q ┌─────┬───┬───┬─────┐ │┌───┐│3 4│5 6│┌───┐│ ││1 2││ │ ││7 8││ │└───┘│ │ │└───┘│ └─────┴───┴───┴─────┘ ⍝∇ perv Back to: code Back to: Workspaces