首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Prolog查找father_in_law

Prolog查找father_in_law
EN

Stack Overflow用户
提问于 2022-10-13 19:48:49
回答 1查看 40关注 0票数 0
代码语言:javascript
复制
m([ himu, eric, shawn, wasim, steve,
    korim, mark, romiz,  yash, ben, mathew,protik,
  labib, tim, sam, richard, sultan,liton,sazid]).
f([ soma, sarah, priti, anika, rokeya, marry,
    lucy, rimi, kani, buni, sanjida, raidah, maria, hema,
   cathrin, pauly,lili]).

%third generation
family([wasim, priti, [soma]]).
family([korim, anika, [eric, marry]]).
family([yash,lili,[protik]]).
%second generation
family([mark, lucy, [wasim, rimi]]).
family([ben, sanjida, [priti, mathew]]).
family([romiz, kani, [anika, yash]]).
family([sazid, raidah, [korim]]).
%first generation
family([tim, maria, [lucy]]).
family([sam, hema, [ben]]).
family([richard, cathrin, [romiz]]).
family([sultan, pauly, [sazid,liton]]).


parent(tim,lucy).
parent(maria,lucy).
parent(sam,ben).
parent(hema,ben).
parent(richard,romiz).
parent(cathrin,romiz).
parent(sultan,sazid).
parent(pauly,sazid).
parent(pauly,liton).
parent(sultan,liton).
parent(sam,korim).
parent(raidah,korim).
parent(romiz,anika).
parent(romiz,yash).
parent(kani,anika).
parent(kani,yash).
parent(ben,priti).
parent(ben,mathew).
parent(sanjida,priti).
parent(sanjida,mathew).
parent(mark,wasim).
parent(mark,rimi).
parent(lucy,wasim).
parent(lucy,rimi).

parent(korim,eric).
parent(korim,marry).
parent(anika,eric).
parent(anika,marry).
parent(wasim,soma).
parent( priti, soma).
parent(yash,protik).
parent(lili,protik).

father_in_law(X, Y) :-
    male(X) ,family([Z,Y|[_]]),parent(X, Z).

对于father_in_law,我只得到妻子的father_in_law。但我也要丈夫的father_in_law在这里面。不明白怎么做的。这个是可能的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-14 09:28:12

你需要改为:

代码语言:javascript
复制
male([ himu, eric, shawn, wasim, steve,
    korim, mark, romiz,  yash, ben, mathew,protik,
  labib, tim, sam, richard, sultan,liton,sazid]).
female([ soma, sarah, priti, anika, rokeya, marry,
    lucy, rimi, kani, buni, sanjida, raidah, maria, hema,
   cathrin, pauly,lili]).

father_in_law(X, Y) :-
    male(XM) ,member(X,XM),family([Z,Y,[_|_]]),parent(X, Z).
father_in_law(X, Y) :-
    male(XM) ,member(X,XM),family([Y,Z,[_|_]]),parent(X, Z).

这是丈夫的father_in_law。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74066023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档