Lisp - setq和汽车

时间:2016-08-18 01:01:12

标签: variables lisp common-lisp

我想在GCL lisp中做这样的事情:

(setq (car '(a 1)) (cdr '(a 1)))

得到结果:

(setq a 1)

这可能是这样的吗? 此致,Declan

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。 Common Lisp有一个完整的生态系统,您可以在程序运行期间编译和执行各种操作。

(setq test value)最初只是一个变成(set 'test value)的宏。 set已被弃用,但我怀疑它会被删除。

(set 'test 'a)
(set test 10)
a ; ==> 10

现在,setq确保您不会忘记这个小引用,因为您有99,99%的时间命名了您想要的变量,而您不需要调试半天来查找缺少的引号。