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

时间:2016-02-15 20:35:51

标签: list scheme lisp racket

我无法弄清楚如何访问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 ...我该怎么做?

注意:这显然适用于家庭作业,但这个问题只是为了开始。

1 个答案:

答案 0 :(得分:2)

查找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