Programming with Lambda Calculus