微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何创建一个独立的 swi-plog 可执行文件?

如何解决如何创建一个独立的 swi-plog 可执行文件?

我是 Prolog 的新手。我有一个这样的 .pl

male(philip).
male(charles).
male(andrew).
male(edward) .
male(mark) .
male(peter) .
male(mike) .
male(timothy) .
male(william) .
male(harry) .
male(geogre) .
male(louis) .
male(archie) .
male(james) .


female(elizabeth).
female(anne) .
female(zara) .
female(autumn) .
female(sophie) .
female(louise) .
female(Sarah) .
female(diana) .
female(camilla) .
female(eugenie) .
female(beatrice) .
female(kate) .
female(meghan) .
female(charlotte) .

married(philip,elizabeth).
married(peter,autumn) .
married(zara,mike) .
married(anne,timothy) .
married(edward,sophie) .
married(andrew,Sarah) .
married(charles,camilla) .
married(william,kate).
married(harry,meghan).

parent(philip,charles) .
parent(elizabeth,charles) .
parent(philip,andrew) .
parent(alizabeth,andrew) .
parent(philip,anne) .
parent(elizabeth,anne) . 
parent(philip,edward) .
parent(elizabeth,edward) .
parent(mark,peter) .
parent(anne,peter) .
parent(mark,zara) .
parent(anne,zara) .
parent(edward,louise) .
parent(sophie,louise) .
parent(edward,james) .
parent(sophie,james) .
parent(andrew,eugenie) .
parent(andrew,beatrice) .
parent(Sarah,eugenie) .
parent(Sarah,beatrice) .
parent(charles,william) .
parent(diana,william) .
parent(charles,harry) .
parent(diana,harry) .
parent(kate,geogre) .
parent(kate,charlotte) .
parent(kate,louis) .
parent(william,geogre) .
parent(william,charlotte) .
parent(william,louis) .
parent(harry,archie) .
parent(meghan,archie) .

divorced(anne,mark) .
divorced(charles,diana) .

father(Parent,Child):-male(Parent),parent(Parent,Child).
mother(Parent,Child):-female(Parent),Child).
child(Child,Parent):-father(Parent,Child); mother(Parent,Child).
son(Child,Parent):-male(Child),child(Child,Parent).
daughter(Child,Parent):-female(Child),Parent).
grandparent(GP,GC):-parent(GP,Parent),GC).
grandmother(GM,GC):-mother(GM,mother(Parent,GC).
grandfather(GF,GC):-father(GF,father(Parent,GC).
grandchild(GC,GP):-parent(Parent,GC),parent(GP,Parent).
grandson(GS,GP):-male(GS),GS).
granddaughter(GD,GP):-female(GD),GD).
spouse(Husband,Wife):-married(Husband,Wife).
husband(Person,Wife):-male(Person),married(Person,Wife).
wife(Person,Husband):-female(Person),married(Husband,Person).
sibling(Person1,Person2):-parent(P,Person1),parent(P,Person2).
brother(Person,Sibling):-male(Person),Person),Sibling),Person \=Sibling.

sister(Person,Sibling):-female(Person),Person \=Sibling.

aunt1(Aunt,Person):- parent(Parent,sister(Aunt,Parent).
aunt2(Aunt,sibling(Parent,Sib),married(Sib,Aunt).
aunt3(Aunt,Person):- married(P,(aunt1(Aunt,P); aunt2(Aunt,P)).
aunt(Aunt,Person):- (aunt1(Aunt,Person); aunt2(Aunt,Person); aunt3(Aunt,Person)).

uncle1(Uncle,brother(Uncle,Parent).
uncle2(Uncle,Uncle).
uncle3(Uncle,(uncle1(Uncle,P); uncle2(Uncle,P)).
uncle(Uncle,Person):- (uncle1(Uncle,Person); uncle2(Uncle,Person); uncle3(Uncle,Person)).

nephew(Person,Uncle):- male(Person),uncle(Uncle,Person).
niece(Person,Aunt):- female(Person),aunt(Aunt,Person).

firstCousin(Person,Cousin):- child(Cousin,AC),(aunt(AC,Person);uncle(AC,Person)).

在我使用命令“swipl.exe -o 1812057_18127064_18127205.exe -c 1812057_18127064_18127205.pl --goal=main”后,我在同一个目录中得到了 1812057_181271.exe27.exe 文件然后我使用“1812057_18127064_18127205.exe”来cmd提示运行该文件,但它似乎打开并立即结束。我想要的是像程序一样使用这个文件,你可以使用“?-”来询问。谁能帮我?非常感谢。

解决方法

似乎您忘记在代码中定义“主要”谓词!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。