將函數設置爲符號有一些問題。舉例來說,我的一些屬性添加到符號:將函數設置爲符號
(putprop 'rectangle '10 'width)
(purprop 'rectangle '2 'height)
(putprop 'rectangle (* (get 'rectangle 'width) (get 'rectangle 'height)) 'square)
當我鍵入(symbol-plist 'rectangle)
我得到:
(SQUARE 20 HEIGHT 2 WIDTH 10)
但是,如果我改變高度或價值我老方值:
(putprop 'rectangle 10 'height)
(symbol-plist 'rectangle)
如何將函數設置爲符號屬性?如果我將屬性設置爲lambda,symbol-plist
使我得到類似#<Closure-square: #12345>
您可以[funcall(HTTP:/ /www.lispworks.com/documentation/HyperSpec/Body/f_funcal.htm)關閉,並且您可以使用[symbol-function](http://www.lispworks.com/documentation/HyperSpec/Body/f_symb_1.htm )來訪問給定符號的功能。 – Daimrod
是的,我可以使用funcall,但你能解釋我如何使用符號函數嗎? – Boo
嗯我錯了,我認爲我們可以像符號一樣操縱屬性 ,但問題依然存在。我們不能製作一個函數,它會立即返回一個函數並對其進行評估(不帶funcall)。 I 認爲這是因爲Common Lisp是一個lisp-2而不是一個lisp-1。即 一個符號可以同時具有一個值和一個函數。 – Daimrod