(make-procedure arg-list statement-list) -> <closure>
Make-procedure looks very much like lambda. However, it is not:
Consider:
(let ((x 1)) (make-procedure () '(x)))
The resulting closure does not have access to the X bound by the let form.
Unlike (let ((x 1)) (lambda () x)) which does have access to X.