Example code:
add a b = a + b main = do print(add 1 3) > :type add add :: Num a => a -> a -> a
Lists
[1, 4..10] -- [1, 4, 7] let list = [1..10] head list -- 1 tail list -- [2, 3, 4, ... 10] filter even list -- [2, 4, 6, 8, 10]
Tuples
names = ("a" "b") fst names -- "a" snd names -- "b"
Expressions
canIVote age = do let msg = if age > 17 then "please vote" else "not yet" print(msg)
Currying
add a b = a + b -- add :: Num => a -> a -> a
Lazy evaluation
-- Create infinite list and take 10 from it numbers = 1 : map (+1) numbers take 10 numbers