をLISP私はlispのemacsの中で私の最初のコードの一部を記述しようとしていますし、私は次の動作を理解することはできません注文
(defun sq (x) (* x x))
(member 9 '(1 2 3 4 (sq 3)))
これはnil
に評価されますが、私は期待していた値が(9)
ました
私は* emacs lispがアプリケーショナルオーダーの評価を使用していると思いますので、その機能が適用される前にリストが評価されなかったのはなぜですか? (sq 3)
があるので(9 1 2 3 4)
と評価さ
私は非nilの条件をテストするためにそれを必要とするので、次のように、私はついにそれを動作させることができ、
(member 9 (cons (sq 3) '(1 2 3 4)))
は、私の質問は、この仕事んです引数の中の要素であった以前の例とは違って、関数(cons)への "直接"引数? cons
をここで許容される回避策を使用しているか、望ましい動作を得るためのより良い/正しい方法がありますか?
* emacs lispがどのような評価の評価をしているのかは分かりませんでしたが、私はscheme interpreterで同じ表現を試してみましたが、同じ回答がありました。今私は本当に本当に混乱しています!
助けてください。
どうもありがとう:
代わりに、(明示的に引用されていない限り)そのパラメータを評価
list
機能を、使用することができます。それは助けになりました:) – naiquevin@naiquevin、私の喜び。 –