Описать функцию, которая создавала бы список только из числовых элементов списка–аргумента. - Lisp
Формулировка задачи:
Решение задачи: «Описать функцию, которая создавала бы список только из числовых элементов списка–аргумента.»
(defun task (lst) (cond ((null lst) nil) ((numberp (car lst)) (cons (car lst) (task (cdr lst)))) (t (task (cdr lst))))) ==> TASK (task '(1 a 2 b 3 c c c)) ==> (1 2 3)
Объяснение кода листинга программы
В коде определена функция с именем task. Она принимает в качестве аргумента lst, который является списком. Функция проверяет, является ли lst пустым списком. Если это так, то возвращается nil. В противном случае функция проверяет, является ли первый элемент списка числом с помощью функции numberp. Если это так, то этот элемент добавляется в начало результирующего списка, а оставшаяся часть списка передается в функцию task рекурсивно. Если первый элемент не является числом, то функция task вызывается рекурсивно для оставшейся части списка без первого элемента. В итоге получается список, содержащий только числовые элементы исходного списка. Например, при выполнении (task '(1 a 2 b 3 c c c)) результатом будет (1 2 3), так как все нечисловые элементы (a, b, c) отфильтровываются.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д