Vigenère cipher: Difference between revisions
Content deleted Content added
m →{{header|Sidef}}: updated code |
|||
Line 3,050: | Line 3,050: | ||
=={{header|Sidef}}== |
=={{header|Sidef}}== |
||
{{trans|Perl 6}} |
{{trans|Perl 6}} |
||
<lang ruby>func s2v(s) { s.uc.scan(/[A-Z]/) |
<lang ruby>func s2v(s) { s.uc.scan(/[A-Z]/).map{.ord} »-» 65 } |
||
func v2s(v) { |
func v2s(v) { v »%» 26 »+» 65 -> map{.chr}.join } |
||
func blacken (red, key) { v2s(s2v(red) |
func blacken (red, key) { v2s(s2v(red) »+« s2v(key)) } |
||
func redden (blk, key) { v2s(s2v(blk) |
func redden (blk, key) { v2s(s2v(blk) »-« s2v(key)) } |
||
var red = "Beware the Jabberwock, my son! The jaws that bite, the claws that catch!" |
var red = "Beware the Jabberwock, my son! The jaws that bite, the claws that catch!" |
||
var key = "Vigenere Cipher!!!" |
var key = "Vigenere Cipher!!!" |
||
say red |
say red |
||
say (var black = blacken(red, key)) |
say (var black = blacken(red, key)) |
||
say redden(black, key) |
say redden(black, key)</lang> |
||
{{out}} |
{{out}} |
||
<pre> |
<pre> |