我刚刚尝试在 Prolog 中实现绝对功能,但我遇到了一些奇怪的行为。我的代码是:
absval(X, RESULT) :- X >= 0, RESULT is X.
absval(X, RESULT) :- X < 0, RESULT is -X.
当我在 SWI-Prolog 中尝试时,absval(-2,X).
我得到了
X = 2
yes
正如预期的那样。但否则,当我调用时absval(2,X)
,我得到X = 2 ?
并且我应该插入另一个输入。按回车后我也得到了yes
。
第二个结果是什么意思?我的解决方案有什么问题?