我想创建一个谓词,以评估输入的两个参数是否相同。这是我写的(很基础)
same(A, B) :- A == B.
same(21, 21) % true
same(var, 'var') % true
same(var, 'Var') % false
我想不使用比较运算符来做到这一点,但我不知道如何做。对我有什么提示吗?
答案 0 :(得分:0)
奇怪的问题。不使用比较运算符有什么意义?假设根据您的same/2
谓词定义,您要测试术语平等,一种解决方案是:
same(A, B) :- sort([A, B], [_]).
但这是一个技巧,它在执行术语比较以进行排序时利用了术语相等的标准sort/2
谓词。因此,此(或任何其他类似的技巧)不是明智的编程解决方案。您的问题背景是什么?