【发布时间】:2014-11-15 00:16:19
【问题描述】:
我一直在努力解决问题
? − evalExp(exp(−, exp(∗, 3, 4), exp(/, 2, 3)), N ).
N = 11.333333333333334.
我的代码在 windows 中工作,但在 ubuntu 中不工作。这是我的代码。
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?