procedures as returned values. bind free variables to the lambda expression