⍝ Run Length Encoding (RLE packing): packR'Mississippi' ┌──┬───────────────┬────────┐ │11│1 1 2 1 2 1 2 1│Misisipi│ └──┴───────────────┴────────┘ packR 11 11 11 22 22 11 11 ┌─┬─────┬────────┐ │7│3 2 2│11 22 11│ └─┴─────┴────────┘ mat← {⍵×[⎕io]⍵∘.≥⍵}⍳9 ⍝ lower-diagonal matrix. mat 1 0 0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 0 3 3 3 0 0 0 0 0 0 4 4 4 4 0 0 0 0 0 5 5 5 5 5 0 0 0 0 6 6 6 6 6 6 0 0 0 7 7 7 7 7 7 7 0 0 8 8 8 8 8 8 8 8 0 9 9 9 9 9 9 9 9 9 packR mat ┌───┬─────────────────────────────────┬─────────────────────────────────┐ │9 9│1 8 2 7 3 6 4 5 5 4 6 3 7 2 8 1 9│1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9│ └───┴─────────────────────────────────┴─────────────────────────────────┘ chk←{ ⍵≡0 ⍺⍺ ⍺⍺ ⍵:'ok' ' Error: compression round-trip fails' } packR chk ⎕fmt notes.Marilyn ⍝ simple text matrix ok ⍝∇ packR notes.Marilyn Back to: code Back to: Workspaces