我正在尝试使用destructuring-bind进行如下操作:
(destructuring-bind
(a b) '(1 2) (list a b)))
当我在REPL中评估这个时,我得到:
READ from #1=#<INPUT STRING-INPUT-STREAM>: an object cannot start with #\)
[Condition of type SYSTEM::SIMPLE-READER-ERROR]
我希望结果是
(1 2)
在上面的代码中,错误对我没有任何意义。
我意识到我只是绑定了一个简单的参数列表,而不是一棵树,但我仍然希望它可以工作。关于我哪里出错的任何线索?
答案 0 :(得分:10)
删除额外的)最后。工作正常。
答案 1 :(得分:3)
虽然我们在这,但通常的格式是:
(destructuring-bind (a b)
'(1 2)
(list a b))
它还可以更容易地看到括号如何匹配。通常编辑也会提供帮助。在右括号后放置光标应突出显示相应的左括号。另请注意,所有具有自我尊重能力的Lisp语法编辑器都有一个命令来查找不匹配的括号。