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