Я новичок в 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, я использую:
«В отличие от операторов арифметического сравнения унификации, операторы не могут использоваться для присвоения значений переменной. Они могут быть оценены только после того, как каждый член на каждой стороне был создан».