Racket 获取列表列表的第二个元素作为列表列表

Racket 获取列表列表的第二个元素作为列表列表,racket,Racket,我在学习球拍,我想得到第二个列表,而不是列表 我有以下清单: (define list-of-list '(((a b c) (d e f)) ((1 2 3) (4 5 6)))) >'(((1 2 3) (4 5 6))) 如果我这样做: (car list-of-list) 我得到: > '((a b c) (d e f)) > '(((1 2 3) (4 5 6))) 但是,如果我这样做: (cdr list-of-list) 我得到: > '((a

我在学习球拍,我想得到第二个列表,而不是列表

我有以下清单:

(define list-of-list '(((a b c) (d e f)) ((1 2 3) (4 5 6))))
>'(((1 2 3) (4 5 6)))
如果我这样做:

(car list-of-list)
我得到:

> '((a b c) (d e f))
> '(((1 2 3) (4 5 6)))
但是,如果我这样做:

(cdr list-of-list)
我得到:

> '((a b c) (d e f))
> '(((1 2 3) (4 5 6)))
我也尝试过:

(list-tail list-of-list 1)
但是我得到了一个列表,一个列表:

(define list-of-list '(((a b c) (d e f)) ((1 2 3) (4 5 6))))
>'(((1 2 3) (4 5 6)))
获得我想要的东西的唯一方法是:

(cadr list-of-list)
> '((1 2 3) (4 5 6))
我认为这是球拍的正确工作方式,但是,因为我正在学习:


有更好的(或函数式编程风格)方法吗?

这是正确的方法,但更容易阅读:

(second list-of-list)
=> '((1 2 3) (4 5 6))
如果你想知道,还有第三个和第四个等等,直到第十个。这都是我的建议。

我可以推荐“小阴谋家”(有趣、简短、发人深省)或“如何设计程序”(在HtDP.org网站上免费提供,篇幅长且详细,教科书式)?这两本书都是专家们写得很好的。事实上,两本书的作者名单上都有一位专家