我是一个prolog编程任务,我不能用prolog形式表示以下谓词。
蝙蝠侠喜欢看足球并从比尔那里买票,在空闲时间从不打曲棍球或板球。
我无法以列表格式编写谓词的否定部分。列表是表格。
member([batman,soccer,gotham,tikcet,bill],Listname)
感谢任何帮助。
谢谢!
答案 0 :(得分:0)
我没有看到问题与您的列表之间的关联。
蝙蝠侠喜欢看足球并从比尔那里买票,但在空闲时间从不打曲棍球或板球。
第一部分看起来像这样:
loves(batman, watching(soccer)).
buys(batman, tickets, bill).
最后一部分看起来像这样:
:- dynamic plays/2.
这只是告诉Prolog,戏剧/ 2是一种事实,这些事实即将到来。
然后您可以这样编写查询:
?- loves(Batman, watching(soccer)),
buys(Batman, tickets, bill),
\+ plays(Batman, hockey),
\+ plays(Batman, cricket).
这似乎反映了我的问题,它给出了预期的回应:
Batman = batman.