RosettaCodeData/Task/Vigen-re-cipher/Smalltalk/vigen-re-cipher-1.st
2023-07-01 13:44:08 -04:00

3 lines
321 B
Smalltalk

prep := [:s | s select:[:ch | ch isLetter] thenCollect:[:ch | ch asUppercase]].
encrypt := [:s :cypher | (prep value:s) keysAndValuesCollect:[:i :ch | ch rot:((cypher at:((i-1)\\key size+1))-$A) ]].
decrypt := [:s :cypher | (prep value:s) keysAndValuesCollect:[:i :ch | ch rot:26-((cypher at:((i-1)\\key size+1))-$A) ]].