gpt4 book ai didi

lisp - 有没有办法将列表转换为 Scheme 中的集合?

转载 作者:太空宇宙 更新时间:2023-11-03 18:41:39 25 4
gpt4 key购买 nike

我想测试列表之间的相等性,但我真的只关心成员是否相同,而不关心顺序。有没有简单的操作符来检查这个?

一个相当简单的例子

(my-equal? (a b) (b a))

应该返回#t。

显然,这个特殊的例子可以通过检查两个列表然后反转第二个列表并再次检查来轻松完成

(or (equal? (a b) (b a)) (equal? (a b) (reverse (b a)))

但是有通用的方法吗?我可以尝试编写一个函数,但我只能想象一些非常复杂的东西来完成这项工作。我猜这一定是一个相当普遍的需求,我想知道 scheme 是否有一个内置的运算符可以在这里完成工作。

我正在使用 mit-scheme 9.0.1

最佳答案

如果您的实现有 SRFI 1可用,有lset=来实现你想要的:

Set operations on lists

关于lisp - 有没有办法将列表转换为 Scheme 中的集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7138331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com