从我班的旧决赛中:
这是一些序言代码:
mystery(1, 1).
mystery(N, F) :-
N1 is N-1,
mystery(N1,F1),
F is F1*N.
问题一:P中的什么值统一
mystery(3, P).
问题2:如果Prolog产生并回答神秘问题后按下分号,解释器最终会报告“ERROR:Out of local stack”。为什么会发生这种情况,您如何修改谜题以避免错误?
问题1:我明白了
P = 6 ?
问题 2:如果我按分号来获取所有答案,我会得到一个 out of local stack 错误。我不确定这段代码试图完成什么或如何修复它,所以我不会离开本地堆栈。有任何想法吗?