Haskell
- Functional Paradigm: Good at Math!
- e.g. implementing quick sort in two lines
qsort [] = []
qsort [p:rest] =
qsort [x|x<-rest,x<=p]++[p]++qsort [x|x<-rest,x>p]
Values and Constants: everything returns a value (no return word), no variables, no assignment!
Declarative Lists: (head:rest)
Function types look formal
foo :: int -> int -> int -> int
foo a b c = a * b - c
Type classes: Eq, Num, Ord, Show