Lispで無名関数を作ったはいいけど,実行はどうすれば...?の解決

初心者向けのサイトを見ているとlambdaを使用しているのは良いが,任意のタイミングでlambdaを実行する方法について言及している場合が少ない.

なので,調べた方法について記述する.

結論としては,funcallにlambdaと引数を渡すことで実行できる.

code

まずはじめにlambdaを生成する.

(defun make-lambda ()
  (lambda (x) (+ x x)))

次にfuncall使用して実行する.

(funcall (make-lambda) 2)
;; 4