我想将负整数值转换为正值。
例如: - 输入-10
,输出10
。
如何在Prolog中进行此转换,是否可以这样做?
答案 0 :(得分:1)
正如@false指出的那样,Prolog(或多或少)是无类型的。
为了以数学方式解释仿函数,可以使用is
运算符。
此类运算符解析语法树,如:
+(*(5,2),7)
将解析为5*2+7
17
。
+
这里没有对添加的真正约束,它只是一个包含两个其他术语的仿函数。只有is
运算符会将其“解释”为添加。
简短回答:
minus(X,Y) :-
Y is -X.
is
运算符不是双向的。因此minus(X,-5)
将无法解决。仅minus(-5,X)
。