Loops prolog如何使用循环/递归连接数据

Loops prolog如何使用循环/递归连接数据,loops,recursion,prolog,Loops,Recursion,Prolog,我得到的数据来自 father(adam, matt). father(matt,frank). father(frank,jim). grandfather:-father(X,A),father(A,Y). 我实际上如何使用递归搜索祖父或曾祖父?基本上,使用循环表示X到Y 编辑:和所有可能的匹配,因为有更多的父亲和儿子的 谢谢 这几乎是“prolog递归”的第一个Google结果: 作为参考,您可以在右侧使用规则的左侧,得到递归。我忘了列出所有可能的回溯。对于现在的'search(X,Y

我得到的数据来自

father(adam, matt).
father(matt,frank).
father(frank,jim).

grandfather:-father(X,A),father(A,Y).
我实际上如何使用递归搜索祖父或曾祖父?基本上,使用循环表示X到Y

编辑:和所有可能的匹配,因为有更多的父亲和儿子的

谢谢

这几乎是“prolog递归”的第一个Google结果:


作为参考,您可以在右侧使用规则的左侧,得到递归。

我忘了列出所有可能的回溯。对于现在的'search(X,Y):-father(X,A),write(X),write('is father to'),write(A),nl,linkedcity(A,Y),write('is father to')。但它只列出了1种可能。