summaryrefslogtreecommitdiff
path: root/Assignment 1/CamilStaps-assignment1-shift.hs
blob: 35a34e76303bf70f0477dee761e1198e3004078a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import System.Environment
import Data.String.Utils

main = do
	args <- getArgs
	let input = replace " " "" (head args)
	print $ map (`shiftN` (read $ args!!1)) input

-- shiftN c i: shift c i times forward (i.e. shiftN 'A' 1 == 'B')
-- Only for uppercase letters
shiftN :: Char -> Int -> Char
shiftN c 0 = c
shiftN 'Z' i = shiftN 'A' (i-1)
shiftN c i = shiftN (toEnum ((fromEnum c) + 1)) (i-1)