Удалить из списка все элементы, равные последнему; найти длину полученного списка - Prolog

Узнай цену своей работы

Формулировка задачи:

Помогите реализовать.Создайте список и Удалите из списка все элементы, равные последнему, найдите длину оставшегося списка;
Получилось так,но это не то что мне нужно,подскажите как сделать именно по заданию? Что бы был один список и из него удалить все элементы равные последнему и посчитать длину списка?
ПОлучилось такой код сделать,но все равно не пойму как реализовать удаление элемента и потом выведение суммы списка

Решение задачи: «Удалить из списка все элементы, равные последнему; найти длину полученного списка»

textual
Листинг программы
len_del_last2(Xs, Ys, Len) :-
    len_del_last2(Xs, _Z, Ys, Len).
 
len_del_last2([X], X, [], 0).
len_del_last2([X, Y | Xs], Z, Ys1, Len1) :-
    len_del_last2([Y | Xs], Z, Ys, Len),
    len_del_last2_gen(X, Z, Ys, Ys1, Len, Len1).
 
len_del_last2_gen(X, X, Ys, Ys, Len, Len).
len_del_last2_gen(X, Z, Ys, [X | Ys], Len, Len1) :-
    X \= Z,
    Len1 is Len + 1.

Оцени полезность:

14   голосов , оценка 4.286 из 5
Похожие ответы