Common Lisp(CCL REPL)中的評估(list + 1 2)
爲什麼返回('(+ 1 2) 1 2)
?Common Lisp爲什麼(列表+ 1 2)評估爲('(+ 1 2)1 2)
更多:OK,我看到+
實際計算結果爲最後REPL結果,但我仍然有一個問題:這是一個標準的CL REPL的東西,有+
等於最後的結果,或者是它Clozure具體?
Common Lisp(CCL REPL)中的評估(list + 1 2)
爲什麼返回('(+ 1 2) 1 2)
?Common Lisp爲什麼(列表+ 1 2)評估爲('(+ 1 2)1 2)
更多:OK,我看到+
實際計算結果爲最後REPL結果,但我仍然有一個問題:這是一個標準的CL REPL的東西,有+
等於最後的結果,或者是它Clozure具體?
您會發現,在REPL中,變量*
保存最後一個結果,並且+
保存上次評估的表單。
例如:
> (+ 1 2)
=> 3
> +
=> (+ 1 2)
> (+ 2 3)
=> 5
> *
=> 5
是的,這些都是標準的,並且在HyperSpec.
如果你想創建一個包含符號+
一個列表,而不是它的價值,你就需要引用它如此:'+
或(quote +)
。
此外,'**','***','++'和'+++ '被定義,允許你引用當前之前的'*'和'+'這兩個值。 – Vatine 2013-04-11 12:12:28
Common Lisp Hyperspec是Common Lisp語言的極好參考。它有一個參考。即使是非字母符號:http://www.lispworks.com/documentation/HyperSpec/Front/X_Alph_9.htm – 2013-04-11 08:23:02