prolog - SWI PROLOG 中的家谱
问题描述
奶奶,表弟,兄弟,叔叔的规则有一些错误我尝试了很多规则,但仍然找不到正确的规则,它返回false,请帮助ppppppppp
/*rules*/
male(james).
male(charles).
male(william).
female(megan).
male(george).
female(catherine).
female(diana).
female(elizabith).
parent(james, charles).
parent(james, elizabeth).
parent(charles, catherine).
parent(charles, william).
parent(charles, megan).
parent(elizabeth, diana).
parent(diana, george).
/*rules*/
father(X, Y) :- parent(X,Y), male(X).
mother(X, Y) :- parent(X,Y), female(X).
child(Y, X) :- parent(X, Y).
grandparent(X, Y) :- parent(X, Z), parent(Z, Y).
grandpa(X, Y) :- grandparent(X, Y), male(X).
grandma(X, Y) :- grandparent(X, Y), female(X).
brother(X, Y) :- male(X), parent(X, Z), parent(Y, Z), X \= Y.
uncle(X, Y) :- brother(X, Z), parent(Y, Z).
grandchild(X, Y) :- grandparent(Y, X).
grandson(X, Y) :- grandchild(X, Y), male(X).
granddaughter(X, Y) :- grandchild(X, Y), female(X).
siblings(B,G) :- parent(P,B), parent(P,G), B\=G.
cousins(X,Y) :- parent(A,X), parent(B,Y), siblings(A,B), X\=Y.
解决方案
发现:女性(伊丽莎白)。伊丽莎白拼写错误!
通过此更正,您的代码应该可以正常工作。我是否回复了您的求助请求?
推荐阅读
- angular - ngrx 适配器选择器语法的含义是什么?
- php - PHP 通过数组搜索并添加相似的值
- python - gi.overrides.GdkPixbuf.Pixbuf 到 Gtk.Widget
- java - 如何使用 Undertow 在 Spring-boot 中取消未完成的、长时间运行的请求?
- r - 可靠地检索分位数函数的倒数
- excel-formula - 计算通过匹配创建的范围内的文本字符串
- c# - 如何固定向右和向左移动?
- java - Mandelbrot 集的可视化表示
- javascript - 如何使用 chart.js 偏移 x 和 y 轴网格点和标签?
- python - 如何删除“baca”或从 html 中读取?