【发布时间】:2015-12-15 08:52:45
【问题描述】:
我是 Prolog 编程的初学者。我编写了这个程序来对带有累加器的深度列表的原子求和。
deep_sum(Xs, N) :- deep_sum(Xs, 0, N).
deep_sum([], N, N).
deep_sum([X|Y], M, N) :- atomic(X), Q is M + X, deep_sum(Y, Q, N).
deep_sum([X|Y], M, N) :- M is P + Q, deep_sum(X, P, N), deep_sum(Y, Q, N).
为什么我会收到“错误:is/2:参数没有充分实例化”?
没有累加器也能正常工作:
deep_sum([], 0).
deep_sum([X|Y], S) :- atomic(X), !, deep_sum(Y, Q), S is Q + X.
deep_sum([X|Y], S) :- deep_sum(X, P), deep_sum(Y, Q), S is P + Q.
【问题讨论】:
-
请添加示例查询,尤其是显示该错误的查询。
标签: prolog