我願做這樣的事情在GCL LISP:Lisp語言 - setq和汽車
(setq (car '(a 1)) (cdr '(a 1)))
得到的結果是:
(setq a 1)
是這樣的,或像這可能嗎? 問候,Declan
我願做這樣的事情在GCL LISP:Lisp語言 - setq和汽車
(setq (car '(a 1)) (cdr '(a 1)))
得到的結果是:
(setq a 1)
是這樣的,或像這可能嗎? 問候,Declan
是的,這是可能的。 Common Lisp擁有整個生態系統,您可以在程序運行期間編譯並執行各種操作。
(setq test value)
最初只是一個變成(set 'test value)
的宏。 set
已經被棄用,但我懷疑它會永遠被刪除。現在
(set 'test 'a)
(set test 10)
a ; ==> 10
,setq
確保你不要忘了一點,因爲報價你命名你想要的變量的時間99.99%,你不需要調試半天尋找失蹤報價。
請注意,'set'只適用於特殊變量。例如(在環境中沒有任何聲明)'(let((x 1))(set'x 2)x)'求值爲'1',但將'x'的'符號值'設置爲'2'。 – tfb
是'a'變量的名稱(詞法或特殊)已經定義?或者它是不確定的? – Renzo
你爲什麼要這樣做?爲什麼不使用哈希表呢? – uselpa
除了所有其他問題,它是你想要的'cadr',而不是'cdr'。 –