制作未绑定变量列表(LISP)

Cyb*_*hot 1 lisp list

我有以下LISP代码

(defun l (x y) (list x y))
Run Code Online (Sandbox Code Playgroud)

当我这样做时,(l a a)我得到A没有价值的错误.

我希望这回来(aa).我怎么能克服这个?

Dan*_*son 6

我想你的意思是你需要一个"符号"列表.当符号绑定到某个值时,它就变成了一个变量.您可以通过在将l函数传递给函数时"引用"符号来执行此操作:

(l 'a 'a)
Run Code Online (Sandbox Code Playgroud)

推荐阅读:http://www.gigamonkeys.com/book/syntax-and-semantics.html

  • 如果要提供语法而不需要引用符号,则需要将其写为宏.在更高层次上解释你想要做什么可能是件好事. (3认同)