2010-11-28 5 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

3

我々はそれでありながら、通常のフォーマットは次のとおりです。

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

また、それが簡単に括弧が一致するかを確認することができます。一般的に、エディターも役立ちます。閉じ括弧の後にカーソルを置くと、対応する開き括弧が強調表示されます。また、自己尊重のすべてのLisp構文対応エディタには、一致しない括弧を見つけるコマンドがあります。

+2

誰かがそれについてコメントするだろうと知っていました;-) – Joel

+1

@Joel:時折リマインダが役立ちます。 ;-) –

+1

私はEmacs/Slimeを使用していますが、大括弧がハイライトされています。私は彼らがすべてマッチしたことを確認したと思っていましたが、私は気をつけていませんでした。 with-it-ness - 私は、SOコードエディタが私が貼り付けたコードを強調表示して私に与えてくれた巨大なヒントを無視することを選択しました。 – Joel