我是 Prolog 的新手。我需要编写一个整数加法器,它将 0-9 之间的数字与其他数字 0-9 相加并产生一个解决方案 0-18。这就是我想要做的:
% pseudo code
add(in1, in2, out) :-
in1 < 10,
in2 < 10,
out < 18.
我希望能够这样称呼它:
要检查它是否是有效的添加:
?- add(1,2,3).
true.
?- add(1,2,4).
false.
缺少一个变量:
?- add(X,2,3).
X = 1.
?- add(1,4,X).
X = 5.
有多个缺失变量:
?- add(X,Y,Z).
% Some output that would make sense. Some examples could be:
X=1, Y=1, Z=2 ;
X=2, Y=1, Z=3 ......
我意识到这可能是一个非常简单的问题,而且可能非常简单。但是,根据我正在使用的Prolog 教程:
“与统一算术比较运算符不同,运算符不能用于为变量赋值。只有在每边的每个术语都已实例化时才能评估。”