与 returns 匹配项目列表关联的类似过程

Similar procedure to assoc that returns list of matching items

我不知道有任何内置的 Scheme 过程会使用密钥和 return 列表。示例:

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

那会 return 类似于:

((a 1)(a 4))

有没有人遇到过类似的情况?谢谢

写一个很简单:

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