Emacs Lispでクロージャを実行するにはどうすればいいですか? 質問する

Emacs Lispでクロージャを実行するにはどうすればいいですか? 質問する

1 つの定数値を返す関数をその場で作成しようとしています。

JavaScript やその他の最新の命令型言語では、クロージャを使用します。

function id(a) {
    return function() {return a;};
}

しかし、Emacs Lisp はそれらをサポートしていません。

恒等関数と部分関数の適用を組み合わせて作成することもできますが、これもサポートされていません。

それで、どうすればいいのでしょうか?

ベストアンサー1

lexical-letで別の解決策を見つけました

(defun foo (n) 
    (lexical-let ((n n)) #'(lambda() n)))

(funcall (foo 10)) ;; => 10

おすすめ記事