【发布时间】:2014-07-25 05:03:42
【问题描述】:
我是 Prolog 的新手,并且有一个关于为共享“共同父母”的兄弟姐妹编写“链式规则”的问题。
在我的程序中,我假设存在断言 X 是 Y 的父级的 parent(X,Y) 事实。
我需要一个规则chain(X,Y,L):如果X是Y的祖先,那么L是列表包含 X、Y 和 Y 的所有祖先,他们也是 X 的后代,按年龄降序排列(从大到小)。换句话说,我的列表应该包含所有将一个人与祖先联系起来的人。
例如: 如果 chain(peter,mary,[peter,paul,sue,mary]),那么 peter 是paul,paul 是 sue 的父级,sue 是 mary 的父级>.
注意:我熟悉 stepSibling(a,b) 关系,他们的关系通过他们的父母 partner(X,Y) 来限定强>;其中兄弟姐妹 a 和 b 通过关系 child(a,X) 和 各自的父母 是他们的孩子强>孩子(b,Y)。 因此;我只是对两个兄弟姐妹共享一个共同父母的关系感到困惑。 ie. 可能如下所示的子关系:child(a,X) 和 child(b,X)。
【问题讨论】:
标签: prolog