Memoization
An optimization where function calls avoid repeating the calculation of results for previously-processed inputs. It can be used for speed gains.
Currying
Currying is breaking down a function that takes multiple arguments into a series of functions where each takes part of the arguments.
cons
Constructs lists
car
Gets the first element of the list. Used to stand for Contents of Address Register on an IBM 704.
cdr
Nips the first element off of a list and gets the rest. Used to stand for Contents of Decrement Register on an IBM 704.
tail recursion optimization
turns a function call into a goto
pure vs impure
pure means functional, impure means imperative