Ну, как пример, когда я тестирую его с помощью is/2
, он терпит неудачу, но когда я использую arithmetic_expression_value/2
, это успешно:
:- arithmetic_function(i/2).
:- op(20, xfx, i).
i(X, Y, Z) :-
Z is X + Y.
calcola :-
writeln('Give me an expression'),
read(ESP),
arithmetic_expression_value(ESP, Z), nl,
write(Z).
Для @gusbro это работает из коробки.Я использую Windows swi-pl здесь, для протокола!
У других могут быть подсказки о том, почему у нас это не получается!