Prolog列表问题

时间:2011-09-20 18:43:24

标签: flex list prolog frames

我正在使用flex,我有一个名为university的框架,它有大约100个实例。我想将它们存储在一个列表中,该列表是Prolog而不是Ksl的一部分并执行搜索操作。例如。该清单应仅包含位于美国的大学。谢谢:))

1 个答案:

答案 0 :(得分:0)

要在Prolog中存储数据,通常将其添加到事实数据库中:

university(mit).
university(carnegie_mellon).

然后您可以自由地使用Prolog的内置搜索来实现谓词,或者使用它来为您提供setof/3findall/3的事实列表,例如:

?- findall(university(X), university(X), Universities).
Universities = [university(mit), university(carnegie_mellon)].

你当然可以让university个事实携带更多数据并使用它来过滤:

university('Oxford', uk).
university('MIT', usa).

?- findall(X, (university(X, uk)), Universities).
Universities = ['Oxford'].

这些是非常基本的例子。我担心你可能不得不花一些时间通过Prolog教程来进一步学习。听起来你需要更强的掌握这种语言才能完成你的任务,这与你知道的任何其他语言一样 nothing