⍝ ⍺-combination matrix of ⍳⍵: ⎕io ⎕ml←1 0 display 0 cmat 5 ┌⊖┐ ↓0│ └~┘ display 1 cmat 5 ┌→┐ ↓1│ │2│ │3│ │4│ │5│ └~┘ display 2 cmat 5 ┌→──┐ ↓1 2│ │1 3│ │1 4│ │1 5│ │2 3│ │2 4│ │2 5│ │3 4│ │3 5│ │4 5│ └~──┘ display 3 cmat 5 ┌→────┐ ↓1 2 3│ │1 2 4│ │1 2 5│ │1 3 4│ │1 3 5│ │1 4 5│ │2 3 4│ │2 3 5│ │2 4 5│ │3 4 5│ └~────┘ display 4 cmat 5 ┌→──────┐ ↓1 2 3 4│ │1 2 3 5│ │1 2 4 5│ │1 3 4 5│ │2 3 4 5│ └~──────┘ display 5 cmat 5 ┌→────────┐ ↓1 2 3 4 5│ └~────────┘ display 6 cmat 5 ┌→──────────┐ ⌽0 0 0 0 0 0│ └~──────────┘ ⍉↑{⍴⍵ cmat 5}¨0 to 6 ⍝ Row and column sizes 1 5 10 10 5 1 0 0 1 2 3 4 5 6 2{⍵[⍺ cmat⍴⍵]}'scissors' 'paper' 'stone' ⍝ 2-combos of nested vector ┌────────┬─────┐ │scissors│paper│ ├────────┼─────┤ │scissors│stone│ ├────────┼─────┤ │paper │stone│ └────────┴─────┘ ↓3{⍵[⍺ cmat⍴⍵]}'abcde' ⍝ 3-combos of char vector ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │abc│abd│abe│acd│ace│ade│bcd│bce│bde│cde│ └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ⍕ display¨0 1 2 3∘.cmat 0 1 2 3 ⍝ Combos of small vectors ┌⊖┐ ┌⊖┐ ┌⊖┐ ┌⊖┐ ↓0│ ↓0│ ↓0│ ↓0│ └~┘ └~┘ └~┘ └~┘ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ⌽0│ ↓1│ ↓1│ ↓1│ └~┘ └~┘ │2│ │2│ └~┘ │3│ └~┘ ┌→──┐ ┌→──┐ ┌→──┐ ┌→──┐ ⌽0 0│ ⌽0 0│ ↓1 2│ ↓1 2│ └~──┘ └~──┘ └~──┘ │1 3│ │2 3│ └~──┘ ┌→────┐ ┌→────┐ ┌→────┐ ┌→────┐ ⌽0 0 0│ ⌽0 0 0│ ⌽0 0 0│ ↓1 2 3│ └~────┘ └~────┘ └~────┘ └~────┘ ⎕io←0 2 cmat 4 ⍝ Code is "origin sensitive" 0 1 0 2 0 3 1 2 1 3 2 3 ⍉ ∘.{⍬⍴⍴⍺ cmat ⍵}⍨ 0 to 12 ⍝ Pascal's triangle 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 2 1 0 0 0 0 0 0 0 0 0 0 1 3 3 1 0 0 0 0 0 0 0 0 0 1 4 6 4 1 0 0 0 0 0 0 0 0 1 5 10 10 5 1 0 0 0 0 0 0 0 1 6 15 20 15 6 1 0 0 0 0 0 0 1 7 21 35 35 21 7 1 0 0 0 0 0 1 8 28 56 70 56 28 8 1 0 0 0 0 1 9 36 84 126 126 84 36 9 1 0 0 0 1 10 45 120 210 252 210 120 45 10 1 0 0 1 11 55 165 330 462 462 330 165 55 11 1 0 1 12 66 220 495 792 924 792 495 220 66 12 1 ⍝∇ cmat display to Back to: code Back to: Workspaces