2012-11-26 3 views
4

작은 도식 자이라는 이라는 책을 읽었습니다.왜 cons에 대한 두 번째 인수는 목록이어야합니다.

읽기 전에 먼저 SICP의 처음 세 장을 읽었습니다.

제 질문은 입니다. 왜 cons에 대한 두 번째 인수는 목록이어야합니다.

그러나 모든 값 A 및 B와

(car (cons a b))위한 (cons a b) 작품은

(cdr (cons a b)) = B

+1

을이 목록 전무, 또는'cons' 중 하나입니다 단지 계획/리스프 협약 그의'cdr'은 다시 목록입니다. –

답변

4

cons하는 두 번째 인자는 아니다 반드시 목록 =. 만약 당신이 (적절하거나 그렇지 않은) 목록을 작성했다면, 목록 일 것입니다. 연관 목록을 구축 할 때 cons 셀의 cdr 부분은 예를 들어, 목록에없는 경우 그것은 완벽하게 유효입니다 :

(define lookup-table (list (cons 'x 10) (cons 'y 20) (cons 'z 30))) 
(assoc 'z lookup-table) 
=> '(z . 30)