gpt4 book ai didi

prolog - 两个变量列表相等

转载 作者:行者123 更新时间:2023-12-03 13:27:37 25 4
gpt4 key购买 nike

如果两个唯一变量列表使用当前ISO标准(ISO / IEC 13211-1:1995包括the built-ins)中的Cor.2包含两个完全相同的变量,则如何定义进行测试的元逻辑谓词(因此仅成功或失败) )。

换句话说,如果一个唯一变量列表是另一个的置换,则谓词应该成功。类似于library(ordsets),我们称此元逻辑谓词varset_seteq(As, Bs).

请注意,与ord_seteq/2相比,此谓词不能简单地为As == Bs

最佳答案

我提出的解决方案使用term_variables/2来检查Bs是否没有超出As的额外变量,并且As没有没有出现在Bs中的变量。

varset_seteq(As, Bs):-
term_variables(As-Bs, As),
term_variables(Bs-As, Bs).




可以使用不是自由变量集的参数来诱骗上述解决方案以使其成功:

 | ?- varset_seteq([A], [a]).

A = a

yes


为了避免这种情况,可以用等效测试代替统一:

varset_seteq(As, Bs):-
term_variables(As-Bs, A0),
A0 == As,
term_variables(Bs-As, B0),
B0 == Bs.

关于prolog - 两个变量列表相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27927769/

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