访问 Racket/Scheme 中的特定列表部分

Access specific list parts in Racket/Scheme

我无法弄清楚如何访问 Racket 中的特定配对信息。

假设我得到了这样的列表:

(define database-of-components
'((p1 200 (2 p2) (3 p3))
(p2 8 (2 p4))
(p3 60 (1 p5) (2 p6) (3 p7))
(p4 2)
(p5 2)
...
))

我如何才能访问某些人 pn 中包含的数据?假设我想从 p1 中获取 200 或从 p3 中获取 60...我该怎么做?

注意:这显然是家庭作业,但这个问题只是入门。

查找assq和朋友(assocassv):

> (assq 'p1 database-of-components)
'(p1 200 (2 p2) (3 p3))
> (second (assq 'p1 database-of-components))
200
> (second (assq 'p3 database-of-components))
60