我有3个事实。如何合并序言中的列表中的已知事实
myfact1(1,'Hamburg','Berlin', 315).
myfact2(2,'Kiel','Bremen', 175).
myfact3(3,'Essen', 'Oberhausen',50).
我想给myform的信息作为List的元组。我的 output(List)
查询应该给像列表:
[('Hamburg', 'Berlin', 315),('Kiel','Bremen',175),('Essen','Oberhausen',50)]
如何在Prolog的实施规则output/1
您的事实定义不清。为什么每个人都是不同的仿函数?这使得处理数据不必要的复杂,因为您需要以编程方式构造函数来查询事实。你有'myfact1','myfact2'和'myfact3',而每个只是'myfact'。除非你真的需要索引事实,否则(不一定)需要第一个整数参数。然后你可以使用聚合谓词,如'findall((A,B,C),myfact(_,A,B,C),L)'。 – lurker