Я написал предикат, который должен пройти через список чисел и сравнить текущее число со следующим, затем добавляет большее число в список, который он должен вернуть. Последний номер просто добавляется в список.
Например:
[1,2,3]
должен вернуться [2,3,3]
[3,5,6,6,5,9]
должен вернуться[5,6,6,6,9,9]
Задача
Предикат находит ответ (записывает его), но не объединяется (?) С ним и продолжает возвращаться[]
.
Код:
head([H|_], H).
head([],[]).
maximize([], X) :- write(X).
maximize([H|T], X) :-
(head(T, N), N = []) -> (append(X, [H], L), maximize([], L)) ;
(head(T, N), H < N) -> (append(X, [N], L), maximize(T, L)) ; (append(X, [H], L), maximize(T, L)).