0

我是序言编程任务,我无法以序言形式表示以下谓词。

喜欢看球的蝙蝠侠从比尔那里买票,空闲时间从不打曲棍球或板球。

我无法以列表格式编写谓词的否定部分。该列表的形式。

member([batman,soccer,gotham,tikcet,bill],Listname)

batman - 蝙蝠侠的名字 足球 - 这个人喜欢做什么 gotham - 起源城市 tikcet - 买东西做他喜欢做的事情 bill - preson 卖票

感谢任何帮助。

谢谢!

4

1 回答 1

0

我没有看到问题与您的列表之间的联系。

喜欢看球的蝙蝠侠从比尔那里买票,空闲时间从不打曲棍球或板球。

第一部分在我看来是这样的:

loves(batman, watching(soccer)).
buys(batman, tickets, bill).

最后一部分在我看来是这样的:

:- dynamic plays/2.

这只是告诉 Prolog,plays/2 是一种事实,这些事实将很快出现。

然后你可以像这样编写查询:

?- loves(Batman, watching(soccer)), 
   buys(Batman, tickets, bill), 
   \+ plays(Batman, hockey),
   \+ plays(Batman, cricket).

这看起来像是向我反映了这个问题,并给出了预期的回应:

Batman = batman.
于 2013-04-25T06:08:54.837 回答