從舊的決賽,我的課:Prolog的代碼示例:統一
下面是一些序言代碼:
mystery(1, 1).
mystery(N, F) :-
N1 is N-1,
mystery(N1,F1),
F is F1*N.
問題1:在
mystery(3, P).
是統一的P什麼樣的價值問題2:如果在Prolog產生並回答神祕之後按分號,並且解釋器最終將報告「錯誤:超出本地堆棧」。爲什麼會發生這種情況,以及如何修改謎題以避免錯誤?
問題1: 我得到
P = 6 ?
問題2: 如果我按分號得到所有的答案,我得到了本地堆棧錯誤的。 我不確定這段代碼試圖完成什麼或如何解決它,所以我不走出本地堆棧。有任何想法嗎?
您對「問題1」有疑問嗎?你明白爲什麼答案是6嗎? – aschepler 2010-12-08 22:32:21