没有比较运算符的等参数

问题描述 投票:0回答:1

我想创建一个谓词来评估输入的两个参数是否相同。这是我写的(很基本的)

same(A, B) :- A == B.

same(21, 21) % true
same(var, 'var') % true
same(var, 'Var') % false

我想这样做而不使用比较运算符,但我不知道如何。有什么提示吗?

prolog
1个回答
0
投票

奇怪的问题。不使用比较运算符有什么意义?假设,根据您的same/2谓词定义,您要测试术语相等性,一种解决方案是:

same(A, B) :- sort([A, B], [_]).

但这是一个技巧,在执行排序的术语比较时,利用标准sort/2谓词使用术语相等。因此,这(或任何其他类似的技巧)不是一个明智的编程解决方案。你问题的背景是什么?

© www.soinside.com 2019 - 2024. All rights reserved.