Описать функцию, которая создавала бы список только из числовых элементов списка–аргумента. - 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) отфильтровываются.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д