У меня есть 3 факта.Как слить данные Факты в список в Прологе
myfact1(1,'Hamburg','Berlin', 315).
myfact2(2,'Kiel','Bremen', 175).
myfact3(3,'Essen', 'Oberhausen',50).
Я хочу дать имформацию myfacts как кортеж List. Мой запрос о output(List)
должен дать список, как:
[('Hamburg', 'Berlin', 315),('Kiel','Bremen',175),('Essen','Oberhausen',50)]
Как можно реализовать Правило output/1
в Прологе
Ваши данные плохо определены. Почему каждый из них является другим функтором? Это делает обработку данных излишне сложной, поскольку вам необходимо программно построить функторы для запроса фактов. У вас есть 'myfact1',' myfact2' и 'myfact3', тогда как каждый должен быть просто' myfact'. И если вам действительно не нужно индексировать факты, вам не нужен первый целочисленный аргумент, либо (обязательно). Затем вы можете использовать агрегированные предикаты, такие как 'findall ((A, B, C), myfact (_, A, B, C), L)'. – lurker