Я хочу построить предикат в Прологе, который возвращает список списков со всеми путями дерева.
Итак, у меня есть эти предикаты:
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]
Есть предложения, пожалуйста?Спасибо
Кстати: я видел этот вопрос ( Путь к дереву в списке списков ), но решение не совсем то, что я ищу.У меня есть информация о моей базе знаний, точно так же, как я разместил здесь, суть в том, чтобы создать код, получающий рут, а затем получить все пути.