SOE ex.5.8


transform :: Enum a => (Int -> Int) -> [a] -> [a]
transform f = map toEnum . map f . map fromEnum

encrypt, decrypt :: String -> String
encrypt = transform (\c -> if c >= 255 then 0 else c+1)
decrypt = transform (\c -> if c <= 0 then 255 else c-1)

Leave a Reply