从球拍中的结构列表中获取第二个值?

时间:2016-10-18 21:08:35

标签: list struct racket

假设球拍中的列表包含(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)

1 个答案:

答案 0 :(得分:0)

正如@melpomene所说,你的firstrest已被撤销。

错误表明rest已获得(make-card 'spades 8),这是您列表中的第一项。相反,您希望获得列表的rest(因此您有一个以(make-card 'hearts 3)开头的列表),然后获取first的列表(以获取卡片的开头)更短的清单)。