Создать предикат, подсчитывающий общее количество цифр в списке символов - Prolog

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

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

Создайте предикат, который подсчитает общее количество цифр в списке символов

Решение задачи: «Создать предикат, подсчитывающий общее количество цифр в списке символов»

textual
Листинг программы
domains
sl=symbol*
 
predicates
ncounter(sl,integer)
 
clauses
 
ncounter([],0).
 
ncounter([C|T],N) :-  C>="0", C<="9", ncounter(T,N1), N=N1+1.
ncounter([C|T],N) :-  C< "0", ncounter(T,N).
ncounter([C|T],N) :-  C> "9", ncounter(T,N).

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

  1. Создаётся тип данных sl, который может содержать любые символы.
  2. Создаётся предикат ncounter, принимающий два аргумента типа sl и целое число.
  3. Задаются два пустых списка: один для хранения результата, второй для итерации.
  4. Устанавливается базовый случай для списка, когда он пуст, результат подсчёта равен нулю.
  5. Основной случай для списка, когда он не пуст. Если первый элемент больше или равен 0 и меньше 9, то он считается цифрой, и к результату предыдущего вызова добавляется единица.
  6. Если первый элемент меньше 0, то он не считается цифрой, и результат предыдущего вызова не изменяется.
  7. Если первый элемент больше 9, то он не считается цифрой, и результат предыдущего вызова не изменяется.

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


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

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

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