2010-11-28 33 views
4

我与解构绑定尝试如下:解构绑定的正确使用

(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) 

在上面的代码中,错误对我来说并不意味着什么。

我意识到我只是绑定了一个简单的参数列表,而不是一棵树,但我仍然期望这个工作。任何线索,我哪里出了错?

回答

10

最后删除额外)。工作正常。

+5

呻吟,多么尴尬。谢谢!至少我现在知道如何在将来解释那个错误消息。 – Joel 2010-11-28 13:24:19

3

虽然我们在它,通常的格式是:

(destructuring-bind (a b) 
    '(1 2) 
    (list a b)) 

这也使得它更容易看到括号匹配。一般来说,编辑也会提供帮助。在右括号之后放置光标应该突出显示相应的左括号。还要注意,所有自尊的支持Lisp语法的编辑器都有一条命令来查找不匹配的括号。

+2

我知道有人会对此发表评论;-) – Joel 2010-11-28 13:47:37

相关问题