я в настоящее время работает над проектом, и я хочу, чтобы реализовать вспомогательный предикат в ПрологеРекурсивный предикат Пролога?
break_down(N, L)
, который работает следующим образом
?- break_down(1,L).
L = [1] ;
false.
?- break_down(4,L).
L = [1, 1, 1, 1] ;
L = [1, 1, 2] ;
L = [1, 3] ;
L = [2, 2] ;
L = [4] ;
false.
и так далее для любого натурального числа N.
я попробовал и реализовать код, который генерирует только первый результат, и я не могу получить остальную часть результатов, и это мой код
break_down(1,[1]).
break_down(N,L):-
N>0,
N1 is N-1,
break_down(N1,L1),
append(L1,[1],L).
, который генерирует только первый выходной результат:
L = [1, 1, 1, 1] ;
любое предложение, как отредактировать мой код, чтобы получить остальное?
На основании постановки задачи, вам нужно добавлять некоторые номера куда-нибудь, но ваше решение не добавляет никаких чисел. Он только добавляет. – lurker