In Scheme, the function f below is not visible outside its enclosing let:
(let ()
(define (f x)
(+ x 1)))
(f 2) ; Error.
However, in Common Lisp, the function f is visible outside its enclosing let:
(let ()
(defun f (x)
(+ x 1)))
(f 2) ; Returns: 3
What is going on in the Common Lisp code above? How can f be visible outside the let?