2009-10-27 82 views
2

这个问题确实没有实际意义,我认为我必须在程序中遇到一个错误或其他问题。如果您仍在查找PicoLisp和onOff行为,请查看herepicoLisp语言: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. 
  • 不宜符号名称必须显式传递?
  • 它为什么返回最后一个符号的值?
+0

是'= T'是一个错字,还是你真的有一个这个名字的操作符? – Svante 2009-10-27 21:03:50

+0

picolisp中实际上有这样一个操作符。 – 2009-10-28 07:20:02

回答

0

这是一只红鲱鱼,没有错误。对不起,HN错误的呼叫。此外,它现在是MIT(X11)许可证下的最开放源代码许可证。

1

它在PicoLisp实现与onOff宏观的错误。

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

它需要一个VAR和多变量和逻辑上否定他们(真亦假,假变为真)。我敢打赌,onOff采取了一个单一的参数列表。这意味着如果给出NO参数,则该参数列表是空的,这意味着赋给该函数的符号是​​NIL。

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

+0

这个答案充其量是过时的。 – 2015-06-11 20:44:42