I don\'t know if you would call it the canonical formulation, but to bind a local function I am advised by the GNU manual to use \'flet\':
(defun adder-with-flet
@d11wq there is `funcall' for this purpose. The following works:
(defun adder-with-let (x) (let ((f #'(lambda (x) (+ x 3)))) (funcall f 3))) (adder-with-let 3) ;=> 6