2009-10-27 97 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