anonymous function values (lambda expressions) expressions vs functions free and bound variables rules vs clauses higher order functions fun doIt g x = g x; fun doItTwice g x = g (g x); currying map, filter, reduce/fold