我在Prolog中遇到问题,我真的需要帮助。
有人(男性和女性)并且他们有预示:
我需要陈述一个人的这些事实,但我不应该陈述超过3个事实! 有人能帮助我吗?
答案 0 :(得分:3)
这是一个简单的方法:
person(PersonName, Gender, Age, Weight, HairColor).
favorite(PersonName, Song, Sport, Book).
你没有理由将自己局限于arity-1或-2事实。您可以像设计关系数据库一样设计Prolog事实数据库。无论如何,Prolog会自动索引事实的第一个术语,所以尽管有明显的搜索,但要将其作为候选键并观察,因为你的程序表现良好。 :)
修改:说明一些问题:
person(maria, female, 28, 61, blond).
有没有名叫Maria的人?
?- person(maria, _, _, _, _).
yes.
玛丽亚最喜欢的运动是什么?
?- favorite(maria, _, Sport, _).
Sport = tennis ;
no.
等。有关详细信息,请参阅下面的@ mbratch评论。