【发布时间】:2016-09-10 12:17:33
【问题描述】:
假设我们有一个符号,有一个符号值、一个函数值和一个属性列表,我们称之为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 中,似乎有一些
混乱的余地。
【问题讨论】:
标签: common-lisp symbols