Syntax error: Operator expected (SWI Prolog)

Syntax error: Operator expected (SWI Prolog)

我遇到了问题:语法错误:需要运算符

这是我的代码

reduceBy1(Input,Output) :-
    (Input > 0 -> Output = Input - 1).  

我做错了什么?错误指向“。”

你应该使用 is 而不是 =。

reduceBy1(Input,Output) :-
    (Input > 0 -> Output is Input - 1). 

?-reduceBy1(5,O).
O = 4