Functional Programming Purely Functional only use functions, can't be used for anything Closures remember it's scope data encapsulation Higher Order Functions filter sort map Immutability Sideeffects Currying Monads