Подсчитать число вхождений атома Х и Y в простой список - Lisp

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

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

Листинг программы
  1. (defun count_x (x list y)
  2. (cond
  3. ((null list) 0)
  4. ((= 0 (rem y 2))
  5. (cond
  6. ((eql x (car list)) (+ 1 (count_x x (cdr list) (+ 1 y))))
  7. ( t (count_x x (cdr list) (+ 1 y)))
  8. )
  9. )
  10. ( t (count_x x (cdr list) (+ 1 y)))
  11. )
  12. )
я сделал половину, но не правильно работает.

Решение задачи: «Подсчитать число вхождений атома Х и Y в простой список»

textual
Листинг программы
  1. (defun counter (a b w)
  2.   (+ (count a w) (count b w)))
  3.  
  4. > (counter 3 5 '(1 2 3 4 5 3 5 5))
  5. 5

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

В коде определён пользовательский функтор с именем counter, который принимает три аргумента: a, b и w. Функция counter сначала применяет к списку w функцию count с аргументом a, затем результат складывается с результатом вызова функции count с аргументом b. В данном примере вызывается функция counter с аргументами 3, 5 и '(1 2 3 4 5 3 5 5). Функция count с аргументом 3 (т.е. #3) будет подсчитывать количество вхождений числа 3 в списке, аналогично для аргумента 5 и числа 5. В результате выполнения функции counter количество вхождений чисел 3 и 5 в списке суммируется и возвращается в качестве результата. В данном случае результатом будет число 5.

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


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

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

13   голосов , оценка 4.077 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы