我有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