Ответ в теме: Подсчет элементов списка без указанного элемента

      Комментарии к записи Ответ в теме: Подсчет элементов списка без указанного элемента отключены
#1916

На SWI Prolog:

lengthWithoutValue(SourceList, SourceValue, ResultLength):-
  delete(SourceList, SourceValue, ListWithoutValue),
  length(ListWithoutValue, ResultLength).

Используется встроенная функция delete для удаления из списка всех элементов с заданным значением. Если Вы используете другой диалект пролога – скопируйте реализацию такой функции из статьи по ссылке.