我希望以下代码打印出来[9 4],但这不起作用
:- op(20,xfx,i).
i(X,Y, Z) :-
Z=[X,Y].
main:-
RESULT is 9 i 4, write(RESULT).
我哪里出错了?
答案 0 :(得分:3)
操作员基本上是语法糖;我们只是写+(1,2)
而不是写1+2
因此,9 i 4
相当于i(9,4)
现在,+ / 2不仅是运营商,还是arithmetic function 请注意,结果应该是一个数字,所以你不能用它来返回一个列表(也不能使用是/ 2)
答案 1 :(得分: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).