【发布时间】:2014-03-30 04:41:21
【问题描述】:
我能够从前缀表达式中得到总和,但是每当我在列表中添加一个列表时,程序就不会运行。
expr(Z) --> num(Z).
expr(Z) --> [+], num(X), expr(Y), {Z is X+Y}.
expr(Z) --> [-], num(X), expr(Y), {Z is X-Y}.
num(D) --> [D], {number(D)}.
calculate(L, M) :- expr(M, L, []).
这可行:calculate([+, 2, -, 9, 8], X]
但calculate([+, 2, [-, 9, 8]], X] 给出错误。
我需要什么才能让它在列表中工作?
【问题讨论】:
标签: prolog expression prefix evaluate