Запуск SWI-Prolog программы в ideone

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

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

Есть функция, считающая кол-во вхождений элемента в список:
И начальные установки:
Как правильно вызвать count_in_list(4, [5,3,6,4,9,1,4,2,7,8,0,5,4])) и вывести результат работы? Ссылка на программу в ideone

Решение задачи: «Запуск SWI-Prolog программы в ideone»

textual
Листинг программы
count_in_list(X,[X|T],N):-!,count_in_list(X,T,N1), N is N1+1.
count_in_list(X,[_|T],N):-count_in_list(X,T,N).
count_in_list(_,[],0).
 
:- count_in_list(4, [5,3,6,4,9,1,4,2,7,8,0,5,4], X), write(X). /* X=3 */

Объяснение кода листинга программы

В данном коде представлен простой подсчет количества повторяющихся элементов в списке. Список разделен на два случая:

  1. Если элемент X присутствует в списке, то функция count_in_list(X, [X|T], N) рекурсивно вызывается для списка T и счетчика N, и к N добавляется единица.
  2. Если элемент X отсутствует в списке, то функция count_inlist(X, [|T], N) рекурсивно вызывается для списка T и счетчика N. Если список пуст, то счетчик инициализируется нулем. В конце кода приведен пример вызова функции count_in_list(4, [5,3,6,4,9,1,4,2,7,8,0,5,4], X), где X должен быть равен 3.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

14   голосов , оценка 3.643 из 5