1
私はこのようなelispのコードがあります:私が欲しいものelispの変数バインド
(setq a nil)
(defun testa (a) (add-to-list a "ABCD"))
(testa 'a)
はa
リスト("ABCD")
を作ることであるが、機能testa
の引数名は、変数a
と同じであるため、ローカルバインディング関数内のa
の値はそれ自身であり、関数の外部の値をバインドしません。
私の質問は:変数を外部に名前を変更しないと、まともな解決策がないと回避できないのは、elispの機能ですか?
これは疑問に答えるものではありません。OPが不思議に思う動作を説明するものではありません。リンク先の説明の関連部分を組み込んでください。それ以外の場合、これは本質的にリンクオンリーの回答であり、削除される危険性があります。 – Drew
ありがとうございます。たぶん、私は機能する字句の束縛を使用して関数を定義する必要があります。 – hw9527