我有一个存储有对的列表。
'((a (b 1))
(b (c 2))
(c (d 3))
(d (e f)))
(define (compare-unit unit-to-check source)
(cond ((null? source) '())
((equal? (car source) unit-to-check) (car source))))
在我的程序中,我想检查搜索查询是否等同于列表中对的汽车,并返回给定的对。
例如,如果搜索查询的(a x)
和(a (b 1))
与(a x)
的车辆相同,我想返回(a (b 1))
。
答案 0 :(得分:2)
有一个内置的程序可以满足您的需求 - 它被称为assoc
:
(define (compare-unit unit-to-check source)
(assoc (car unit-to-check) source))
例如:
(define source
'((a (b 1))
(b (c 2))
(c (d 3))
(d (e f))))
(compare-unit '(a x) source)
=> '(a (b 1))