Подсчитать число вхождений атома Х и Y в простой список - Lisp
Формулировка задачи:
(defun count_x (x list y) (cond ((null list) 0) ((= 0 (rem y 2)) (cond ((eql x (car list)) (+ 1 (count_x x (cdr list) (+ 1 y)))) ( t (count_x x (cdr list) (+ 1 y))) ) ) ( t (count_x x (cdr list) (+ 1 y))) ) )
Решение задачи: «Подсчитать число вхождений атома Х и Y в простой список»
textual
Листинг программы
(defun counter (a b w) (+ (count a w) (count b w))) > (counter 3 5 '(1 2 3 4 5 3 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д