假设我们有一个符号,带有符号值,函数值和属性列表,让我们调用它q.假设我们还有一个f带有形式参数的函数v,例如(f (v) ... )调用函数就好了(f q).
我的问题是:究竟传递给了v什么?是
q;q;q,传递给形式参数v?
如果他们都传递到v,然后我的事实,我们真正需要的功能感到困惑funcall和apply.如果v真的同时具有值和函数值,那么它肯定会自己决定在我们编写时(v 3),它必须使用函数值v而不是(funcall v 3).当我们使用时,(setq v 3)它必须使用的值v.
究竟传递给什么v,为什么v不是一个符号,而只是一个"参数"或"变量",对我来说是一个谜.但我相信它在Lisp 1.5中真的是一个象征.但是在共同的Lisp中,似乎存在一些混淆的空间.