假设球拍中的列表包含(cons (make-card 'spades 8) (cons (make-card 'hearts 3) empty))
(define-struct card(suit value))
(card-suit(first(cons (make-card 'spades 8) (cons (make-card 'hearts 3) empty))))
--> give me 'spades
what to do to get hearts
如果我写
(rest(first(cons (make-card 'spades 8)(cons (make-card 'hearts 3) empty))))
我收到错误
rest: expects a non-empty list; given: (make-card 'spades 8)
答案 0 :(得分:0)
正如@melpomene所说,你的first
和rest
已被撤销。
错误表明rest
已获得(make-card 'spades 8)
,这是您列表中的第一项。相反,您希望获得列表的rest
(因此您有一个以(make-card 'hearts 3)
开头的列表),然后获取first
的列表(以获取卡片的开头)更短的清单)。