2016-06-19 2 views
1

list-ref은 두 번째 요소가 아닌 첫 번째 요소를 가져올 수 있습니까?두 번째 요소를 가져 오는 중 list-ref 오류가 발생했습니다.

> (list-ref (cons 1 2) 0) 
1 
> (list-ref (cons 1 2) 1) 
list-ref: index reaches a non-pair 
    index: 1 
    in: '(1 . 2) 
    context...: 
    C:\Program Files\Racket\collects\racket\private\misc.rkt:87:7 
> 

저는 DrRacket을 사용하고 있습니다.

+1

앞에':

(list-ref (list 1 2 3) 1) 

car 부분의 요소와 cdr 부분에서 다른 cons 세포, 또는 빈 목록이있는 cons 셀을 사용 목록이 내장되어 기억 cons '는 일반적으로 첫 번째 요소와 나머지 목록을 보유합니다. 즉, 두 번째 인수는 목록이어야합니다. '2'는 목록이 아닙니다. 아마'(죄수 1 (죄수 2))'을 의미했을 것입니다. –

답변

3

목록이 올바르게 작성되지 않았기 때문에. 이 시도 :

(list-ref (cons 1 (cons 2 (cons 3 empty))) 1) 
+0

당신은 정교 할 수 있습니까? ''(1 2 3)'은 상수입니다. – fluter

+0

상수가 아니며, 단점 조작을 사용하여 목록을 작성하는 것과 동일한 지름길입니다. 내 업데이트를 참조하십시오. –

+0

아니요. 'quote'를 사용하지 마십시오 !!! 대신'(list 1 2 3)'을 사용하십시오. –

관련 문제