Advertisement
Guest User

Untitled

a guest
Sep 28th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.46 KB | None | 0 0
  1. import Data.Char
  2.  
  3. char_to_pos c = ord c - ord 'a'
  4. pos_to_char p = chr (p `mod` 26 + ord('a'))
  5.  
  6. transcode_letter op key text = pos_to_char (text_offset `op` key_offset + 26)
  7. where [key_offset, text_offset] = map char_to_pos [key, text]
  8.  
  9. encode_letter = transcode_letter (+)
  10. decode_letter = transcode_letter (-)
  11.  
  12. transcode_string f key = map (uncurry f) . zip (cycle key)
  13.  
  14. encode_string = transcode_string encode_letter
  15. decode_string = transcode_string decode_letter
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement