new files
This commit is contained in:
parent
3af7344581
commit
86c034bb8b
1364 changed files with 21352 additions and 0 deletions
17
Task/Caesar-cipher/Haskell/caesar-cipher.hs
Normal file
17
Task/Caesar-cipher/Haskell/caesar-cipher.hs
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
import Data.Char (ord, chr)
|
||||
import Data.Ix (inRange)
|
||||
|
||||
caesar :: Int -> String -> String
|
||||
caesar k = map f
|
||||
where
|
||||
f c
|
||||
| inRange ('a','z') c = tr 'a' k c
|
||||
| inRange ('A','Z') c = tr 'A' k c
|
||||
| otherwise = c
|
||||
|
||||
unCaesar :: Int -> String -> String
|
||||
unCaesar k = caesar (-k)
|
||||
|
||||
-- char addition
|
||||
tr :: Char -> Int -> Char -> Char
|
||||
tr base offset char = chr $ ord base + (ord char - ord base + offset) `mod` 26
|
||||
Loading…
Add table
Add a link
Reference in a new issue