1
我期待下面的代碼打印出[9 4],但這不是工作Prolog的運營商定製,以評估
:- op(20,xfx,i).
i(X,Y, Z) :-
Z=[X,Y].
main:-
RESULT is 9 i 4, write(RESULT).
當我收到錯了嗎?
我期待下面的代碼打印出[9 4],但這不是工作Prolog的運營商定製,以評估
:- op(20,xfx,i).
i(X,Y, Z) :-
Z=[X,Y].
main:-
RESULT is 9 i 4, write(RESULT).
當我收到錯了嗎?
操作符基本上是語法糖;我們只是寫1+2
而不寫+(1,2)
。
因此,9 i 4
相當於i(9,4)
現在,+/2不僅是運營商,但也是一個arithmetic function
注意,結果應該是一個數,所以你不能用它返回一個列表(而不能使用是/ 2要麼)
這個作品
:- op(800,xfx,i).
R is A i B :-
i(A, B, R).
i(X,Y, Z) :-
Z=[X,Y].
main:-
RESULT is 9 i 4, write(RESULT).