⍝ Conversion to/from Morse code:
morse 'HELLO WORLD'
┌────┬─┬────┬────┬───┬─┬───┬───┬───┬────┬───┐
│....│.│.-..│.-..│---│/│.--│---│.-.│.-..│-..│
└────┴─┴────┴────┴───┴─┴───┴───┴───┴────┴───┘
morse morse'ROUND TRIP'
ROUND TRIP
morse ⎕A
┌──┬────┬────┬───┬─┬────┬───┬────┬──┬────┬───┬────┬──┬──┬───┬────┬────┬───┬───┬─┬───┬────┬───┬────┬────┬────┐
│.-│-...│-.-.│-..│.│..-.│--.│....│..│.---│-.-│.-..│--│-.│---│.--.│--.-│.-.│...│-│..-│...-│.--│-..-│-.--│--..│
└──┴────┴────┴───┴─┴────┴───┴────┴──┴────┴───┴────┴──┴──┴───┴────┴────┴───┴───┴─┴───┴────┴───┴────┴────┴────┘
morse ⎕D
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
│-----│.----│..---│...--│....-│.....│-....│--...│---..│----.│
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
morse '.,:?''-/()"@= '
┌──────┬──────┬──────┬──────┬──────┬──────┬─────┬─────┬──────┬──────┬──────┬─────┬─┐
│.-.-.-│--..--│---...│..--..│.----.│-....-│-..-.│-.--.│-.--.-│.-..-.│.--.-.│-...-│/│
└──────┴──────┴──────┴──────┴──────┴──────┴─────┴─────┴──────┴──────┴──────┴─────┴─┘
⍕↑disp∘morse∘ucase¨ 'Samuel' 'Finley' 'Breese' 'Morse'
┌───┬──┬──┬───┬─┬────┐
│...│.-│--│..-│.│.-..│
└───┴──┴──┴───┴─┴────┘
┌────┬──┬──┬────┬─┬────┐
│..-.│..│-.│.-..│.│-.--│
└────┴──┴──┴────┴─┴────┘
┌────┬───┬─┬─┬───┬─┐
│-...│.-.│.│.│...│.│
└────┴───┴─┴─┴───┴─┘
┌──┬───┬───┬───┬─┐
│--│---│.-.│...│.│
└──┴───┴───┴───┴─┘
morse←{⎕io←0 ⍝ AB
In←(⊃∘⍸⍷⍨∘⊂⍨)¨∘⊂
a←'ET' 'IANM' 'SURWDKGO' 'HVF L PJBXCYZQ'
t←↑{↓'.-'[⍉2⊥⍣¯1⍳≢⍵]}¨a
1=≡⍵:t[⍵ In↑a]
(⍵ In t)⊃¨⊂a,¨' '
}
morse 'SAMUEL'
┌───┬──┬──┬───┬─┬────┐
│...│.-│--│..-│.│.-..│
└───┴──┴──┴───┴─┴────┘
⍝∇ morse ucase
Back to: code
Back to: Workspaces