【发布时间】:2011-06-04 14:04:20
【问题描述】:
我对自然数的下一个程序是SWI-prolog:
natural_number(0).
natural_number(s(X)) :- natural_number(X).
现在我想做一个递归调用,当我们到达 0 时停止。
我的自然数用-s(0)=0, s(s(0))=1, s(s(s(0)))=2, etc表示
所以我定义:
recommend(A, B, natural_number(0)) :-
dosomeFINITEfunction (a,b).
recommend(a,b,mynumber):-
dosomeFINITEfunction(a,b),
recommend (a,b, natural_number(mynumber)).
并致电:3,5,s(0).
但它给了我错误:out of local stack。
有什么问题?谢谢。
【问题讨论】:
-
有人知道答案吗?您需要更多信息吗?
-
Tom,您提供的 sn-p 能更准确一点吗?我的印象是非常不准确。在您的第二个 sn-p 的第一条规则中,有 A,B 和 a,b。是您的代码中的内容吗?你真的在第一条规则中有 natural_number(0) 还是有 s(0) ?
标签: prolog successor-arithmetics