我想要一个执行类似操作的函数:
>(function '(1 2 3 4) '(1 2 3 4 5))
#t
在这种情况下返回#t,因为第一个列表的所有元素都包含在第二个列表中。有没有一个函数可以做到这一点而不必担心顺序?
在这种情况下,您不会将列表进行比较lists,但作为sets,因此使用设计用于这种方式的结构会更有意义。球拍提供哈希集 http://docs.racket-lang.org/reference/sets.html#%28tech._hash._set%29在其标准库中。这使得您正在寻找的功能变得微不足道。
(define (list-subset? a b)
(subset? (list->set a) (list->set b)))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)