haskell-lectures/common/code/Code.hs

54 lines
997 B
Haskell

module Code where
data WeekDay = Monday
| Tuesday
| Thursday
| Wednsday
| Friday
| Saturday
| Sunday
deriving (Show)
f :: Int -> Int -> Int
f x 0 = 1
f x y = x * f x (y - 1)
mod2 :: Int -> Int
mod2 x
| x - 2 == 0 = 0
| x - 2 < 0 = x
| otherwise = mod2 (x - 2)
week :: [WeekDay]
week = [Monday, Tuesday, Thursday, Wednsday
, Friday, Saturday, Sunday]
isMonday :: WeekDay -> Bool
isMonday Monday = True
isMonday x = False
data Tree = Leaf Char
| Node Tree Int Tree
deriving Show
data MaybeInt = NoError Int
| Error String
calcSomething :: Int -> MaybeInt
calcSomething x
| x < 100 = NoError (x * 5)
| otherwise = Error "Int out of range!"
f' :: Int -> Int
f' x = let y p = x + p
in x + (y 2)
addTwo :: [Int] -> [Int]
addTwo [] = []
addTwo (x:xs) = (x + 2) : addTwo xs
f'' :: String -> Bool
f'' xs = even . length . (\x -> x ++ "Hello world") $ xs