我一直在努力解決的難題序言: - 錯誤代碼
? − evalExp(exp(−, exp(∗, 3, 4), exp(/, 2, 3)), N).
N = 11.333333333333334.
我的代碼是工作在Windows,但不是在ubuntu.This工作是我的代碼。
evalExp(exp(X,L,R),N):-expr(exp(X,L,R),N).
expr(exp(-,L,R),N):-expr(L,N1),expr(R,N2),N is N1-N2.
expr(exp(+,L,R),N):-expr(L,N1),expr(R,N2),N is N1+N2.
expr(exp(*,L,R),N):-expr(L,N1),expr(R,N2),N is N1*N2.
expr(exp(/,L,R),N):-expr(L,N1),expr(R,N2),N is N1/N2.
expr(exp(**,L,0),N):-N=1.
expr(exp(**,L,R),N):-
expr(L,N1),expr(R,N2),P is N2-1,expr(exp(**,N1,P),N3),N is N1*N3.
expr(A,N):- N is A.
你需要解釋「不工作」 , 請。另外,您使用的是哪個Prolog解釋器? SWI? – lurker 2014-11-14 15:20:10