与assoc类似的过程返回匹配项的列表

时间:2016-03-01 01:24:30

标签: scheme racket

我不知道任何内置的Scheme过程会占用一个键并返回一个列表。例如:

(define data-a '((a 1) (b 2) (c 3) (a 4)))
(assoc 'a data-a)

这会返回类似的内容:

((a 1)(a 4))

有没有人遇到类似的东西?感谢。

1 个答案:

答案 0 :(得分:3)

写一个很容易:

(define (assoc-all key alist)
  (filter (lambda (a) (equal? key (car a))) alist))