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