RosettaCodeData/Task/Caesar-cipher/Oforth/caesar-cipher.fth

7 lines
224 B
Forth
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
: ceasar(c, key)
c dup isLetter ifFalse: [ return ]
isUpper ifTrue: [ 'A' ] else: [ 'a' ] c key + over - 26 mod + ;
: cipherE(s, key) s map(#[ key ceasar ]) charsAsString ;
: cipherD(s, key) cipherE(s, 26 key - ) ;