RosettaCodeData/Task/Rot-13/Haskell/rot-13-2.hs

12 lines
278 B
Haskell
Raw Permalink Normal View History

2019-09-12 10:33:56 -07:00
import Data.Char (chr, isAlpha, ord, toLower)
import Data.Bool (bool)
2013-04-10 23:57:08 -07:00
2019-09-12 10:33:56 -07:00
rot13 :: Char -> Char
rot13 =
let rot = flip ((bool (-) (+) . ('m' >=) . toLower) <*> ord)
in (bool <*> chr . rot 13) <*> isAlpha
2013-04-10 23:57:08 -07:00
2019-09-12 10:33:56 -07:00
-- Simple test
main :: IO ()
main = print $ rot13 <$> "Abjurer nowhere"