Lambda-Calculus and Combinators: An Introduction