为什么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。
答案 0 :(得分:3)
因为列表没有正确构建。试试这个:
(list-ref (list 1 2 3) 1)
请记住,列表是使用cons
单元格构建的,该单元格在car
部分中有一个元素,在cons
部分中有另一个cdr
单元格,或者是空列表:
(list-ref (cons 1 (cons 2 (cons 3 empty))) 1)