⍝ 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'
┌───┬──┬──┬───┬─┬────┐
│...│.-│--│..-│.│.-..│
└───┴──┴──┴───┴─┴────┘

Back to: code

Back to: Workspaces