picoLisp语言:onOff问题

时间:2009-10-27 12:02:56

标签: lisp picolisp

这个问题真是没有实际意义,我想我必须在我的程序中遇到一个错误。如果您仍在寻找PicoLisp和onOff行为,请查看here

<小时/>



<击> 这应该发生吗?

: (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.
    <击>
  • 不应该明确传递符号名称吗?
  • 为什么它会返回最后一个符号的值?

2 个答案:

答案 0 :(得分:1)

使用onOff 的PicoLisp实施中存在一个错误。

The parameters of the onOff function are(onOff var ..) -> flg

它需要一个 var 和更多的变量,并在逻辑上否定它们(true变为false,false变为true)。我敢打赌,onOff 会获取一个参数列表。这意味着如果没有赋予参数,那么参数列表为空,这意味着赋予函数的符号为NIL。

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

答案 1 :(得分:0)

这是一只红鲱鱼,没有虫子。对不起,HN来电错误。此外,它现在是MIT(X11)许可证,是最开放的开源许可证。