2010-11-28 2 views
4

: 나는 REPL이 평가를 할 때올바른 사용법은 다음과 같이 내가 destructuring 바인드 실험있어

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

내가 얻을 :

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을 사용하고 있는데, 이는 괄호를 강조하고 나는 모두 일치한다는 것을 확인했다. 그러나 나는 분명히주의를 기울이지 않았다. 내 죄를 위해 100 개의 래싱을하고있다 .-- 내 부족함을 추가하려면 with-it-ness - 나는 심지어 코드 에디터가 내가 붙여 넣은 코드를 강조함으로써 나에게주는 거대한 힌트를 무시하기로 결정했다. – Joel

관련 문제