gpt4 book ai didi

Prolog powerset 谓词

转载 作者:行者123 更新时间:2023-12-03 07:48:10 29 4
gpt4 key购买 nike

我希望定义一个谓词幂集(X, P),当 P 是 X 的幂集时,该谓词幂集为真。无论 P 是否为基值,都应该有效。

最佳答案

由于您使用SICStus Prolog,您可以使用库(列表)中的subseq0(+Sequence, ?SubSequence),“当SubSequence是Sequence的子序列时为真,但可能是Sequence本身”(引自手册http://www.sics.se/sicstus/docs/4.0.2/html/sicstus/lib_002dlists.html )。

      ?- setof(X, subseq0([a,b,c],X), Xs).
Xs = [[],[a],[a,b],[a,b,c],[a,c],[b],[b,c],[c]]

如果您不允许使用库谓词,您可以按照 gnu Prolog powerset modification 中的说明实现subseteq0,为了完整起见,我在此处引用了该子集(感谢 gusbro)

powerset([], []).
powerset([H|T], P) :- powerset(T,P).
powerset([H|T], [H|P]) :- powerset(T,P).

关于Prolog powerset 谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10338666/

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