Меня интересуют формулы, составленные из множества союзов (часть большой проблемы). Я хочу написать программу, которая принимает что-то вроде этого:
:- get_params(conj(conj(a,b),c),X)
и возвращает список всех параметров соединений, т.е. X=[a,b,c]
. На данный момент я могу сделать
:- get_params(conj(a,b),X)
, чтобы получить X=[a,b]
с использованием простого сопоставления с образцом Пролога, но как бы вы поступили, например
:- get_params(conj(conj(a,b),c),X)
, чтобы получить X=[a,b,c]
Это кажется действительно простым, но я боролся весь день!