Пролог - Как получить список списков со всеми возможными путями на дереве? - PullRequest
0 голосов
/ 13 октября 2018

Я хочу построить предикат в Прологе, который возвращает список списков со всеми путями дерева.

Итак, у меня есть эти предикаты:

component(solarSystem, earth).
component(solarSystem, mars).
component(earth, water).
component(earth, land).

Суть в том, чтобы получитьсписок вроде этого:

?- tree_list(solarSystem, L).
L = [(solarSystem, [(earth,[water,land]),mars])]

Предположим, что предикат get_childs(solarSystem, L) ( Я уже выполнил этот предикат и работает ) возвращает список со всеми дочерними элементами Солнечной системы, например:

/* ALREADY IMPLEMENTED */
?- get_childs(solarSystem, L).
L = [earth, water, land, mars]

Есть предложения, пожалуйста?Спасибо

Кстати: я видел этот вопрос ( Путь к дереву в списке списков ), но решение не совсем то, что я ищу.У меня есть информация о моей базе знаний, точно так же, как я разместил здесь, суть в том, чтобы создать код, получающий рут, а затем получить все пути.

...