方案匹配元素

时间:2011-05-04 19:13:52

标签: list lisp scheme

我目前正在玩一些方案,我已经被困了一段时间试图找出如何实现测试,检查'xs'中的任何元素是否也存储在'l'中

这是数学函数'\ in',仅适用于列表xs中的每个元素。

2 个答案:

答案 0 :(得分:2)

你想自己写练习,还是只需要这些功能?

如果您只是想要这个功能,那么请使用larsmans的答案(我从未使用过它,但对我来说看起来不错)。

要实施以下尝试(免责声明:我没有测试过这个)


(define has-intersect?
      (lambda (xs l)
           (cond
             [(null? xs) #f]
             [(member? (car xs) l) #t]
             [else (has-intersect? (cdr xs) l)])))

答案 1 :(得分:1)

在数学术语中,您要检查两个列表/集合的交集是否为非空。如果你有一个SRFI-1库,这很简单:

(not (null? (lset-intersection l xs)))

可以在SLIB中找到SRFI-1的实现。

(免责声明:我是SLIB的前任撰稿人。)