Lispで無名関数を作ったはいいけど,実行はどうすれば...?の解決
初心者向けのサイトを見ているとlambdaを使用しているのは良いが,任意のタイミングでlambdaを実行する方法について言及している場合が少ない.
なので,調べた方法について記述する.
結論としては,funcall
にlambdaと引数を渡すことで実行できる.
code
まずはじめにlambdaを生成する.
(defun make-lambda () (lambda (x) (+ x x)))
次にfuncall
使用して実行する.
(funcall (make-lambda) 2) ;; 4