Vigenère cipher: Difference between revisions

Added Quackery.
(New OCaml implementation for >= 4.05)
(Added Quackery.)
Line 3,020:
WMCEEIKLGRPIFVMEUGXQPWQVIOIAVEYXUEKFKBTALVXTGAFXYEVKPAGY
BEWARETHEJABBERWOCKMYSONTHEJAWSTHATBITETHECLAWSTHATCATCH</pre>
 
 
=={{header|Quackery}}==
 
<lang Quackery> [ [] swap witheach
[ upper
dup char A char Z 1+ within
iff join else drop ] ] is onlycaps ( $ --> $ )
 
[ onlycaps
[] swap witheach
[ char A - join ] ] is cipherdisk ( $ --> [ )
 
[ [] swap witheach
[ 26 swap - join ] ] is deciphering ( [ --> [ )
 
[ behead tuck join swap ] is nextkey ( [ --> [ n )
 
[ dip nextkey + dup
char Z > if [ 26 - ] ] is encryptchar ( [ c --> [ c )
[ $ "" swap rot
onlycaps witheach
[ encryptchar
swap dip join ]
drop ] is vigenere ( $ [ --> $ )
 
[ cipherdisk vigenere ] is encrypt ( $ $ --> $ )
 
[ cipherdisk deciphering vigenere ] is decrypt ( $ $ --> $ )
 
$ "If you reveal your secrets to the wind, you should "
$ "not blame the wind for revealing them to the trees." join
say "Encrypted: " $ "Kahlil Gibran" encrypt dup echo$ cr
say "Decrypted: " $ "Kahlil Gibran" decrypt echo$</lang>
 
{{out}}
 
<pre>Encrypted: SFFZCCKDFRLLYUYDMNXMUJTBDHLHQYJGPLSUYUSOVZZJMRMRDHLHQYJNPIRRFEHWQYMBIVMGYTOPBCKMT
Decrypted: IFYOUREVEALYOURSECRETSTOTHEWINDYOUSHOULDNOTBLAMETHEWINDFORREVEALINGTHEMTOTHETREES</pre>
 
=={{header|R}}==
1,462

edits