Ответ в теме: Количество положительных элементов списка

      Комментарии к записи Ответ в теме: Количество положительных элементов списка отключены
#2220

Реализация функций размещается в разделе clauses.

  print_list([]):-
    nl, !.
  print_list([Head|Tail]):-
    write(Head), write(" "),
    print_list(Tail).

Функция вывода элементов на экран состоит из двух правил:

  • первое сработает лишь если исходный список пуст ([]) – при этом функция выводит на экран пустую строку командой nl и запрещает поиск других решений (переход на второе правило) за счет выполнения отсечения (!);
  • если исходный список не пуст, то управление передается на второе правило. Исходный список разделяется на первый элемент и список остальных элементов ([Head|Tail]), первый элемент выводится на экран, выводится пробел, остальные элементы обрабатываются рекурсивно.