2

这个问题真的没有实际意义,我想我一定是在我的程序中遇到了一个错误或什么的。如果您仍在寻找PicoLisp和 onOff 行为,请看这里




这应该发生吗?

: (show NIL)
NIL NIL
-> NIL
: (onOff)
-> T
: (show NIL)
T T
-> T
: (=T NIL)
-> T
: 

(onOff sym ..) -> flg

Logical negates the VAL's of all argument symbols sym. Returns the
new value of the last symbol.
  • 不应该显式传递符号名称吗?
  • 为什么它返回最后一个符号的值?
4

2 回答 2

1

onOff 这是带有宏的 PicoLisp 实现中的一个错误。

onOff函数的参数是(onOff var ..) -> flg

它需要一个var和更多变量并在逻辑上否定它们(true 变为 false,false 变为 true)。我敢打赌,onOff 接受一个参数列表。这意味着如果没有给它任何参数,则该参数列表是空的,这意味着给函数的符号是​​ NIL。

是粗体的,因为这就是问题所在。使用宏可以使您无需引用即可将符号传递给它。所以onOff宏正在生成不正确的代码。

于 2009-10-31T00:44:04.327 回答
0

这是一条红鲱鱼,没有错误。抱歉,HN打错电话了。此外,它现在处于 MIT (X11) 许可证下,这是最自由的开源许可证。

于 2015-06-11T20:44:17.293 回答