以下是我的知识库中的事实(http://www.doc.gold.ac.uk/~mas02gw/prolog_tutorial/prologpages/recursion.html(递归练习 2)):
taller(bob,mike). % bob is taller than mike
taller(mike,jim). % mike is taller than jim
taller(jim,george). % jim is taller than george
现在我想用递归来推断出明显的“鲍勃”比“乔治”高。
我试图添加这个规则来解决这个问题:
taller(X,Y) :- taller(X,Z),taller(Z,Y).
我需要您的帮助来为此递归设置停止条件,因为现在我遇到了堆栈溢出错误:
| ?- taller(bob,george).
Fatal Error: local stack overflow (size: 8192 Kb, environment variable used: LOCALSZ)
谢谢