Список без чисел - Lisp
Формулировка задачи:
Определите функцию (f s), результатом которой является список,
получающийся из списка списков s после удаления всех подсписков, содержащих
числа.
Почему то не работает строка:
(defun f(lst) (cond ((null lst) nil) ((listp (first lst)) ((f (first lst)) (f (rest lst)))) ((numberp (first lst)) (f (rest lst))) ( t (cons (first lst) (f (rest lst)))) ) )
((listp (first lst)) ((f (first lst)) (f (rest lst)))) Apply_: f - не является корректным именем функции! ==> ERRSTATE
((listp (first lst)) ((f (first lst)))) то же не работает.
Решение задачи: «Список без чисел»
textual
Листинг программы
(defun f(lst) (cond ((null lst) nil) ((listp (first lst)) (cons (f (first lst)) (f (rest lst))) ) ((numberp (first lst)) (f (rest lst))) ( t (cons (first lst) (f (rest lst)))) ) )
Объяснение кода листинга программы
В данном коде определён функцией f
список lst
. Если список пуст, то возвращается nil
. Для непустого списка выполняется рекурсивный вызов функции f
для первого элемента списка, а затем результат этого вызова присоединяется к результату вызова функции f
для оставшейся части списка. Если первый элемент списка является числом, то он присоединяется к результату вызова функции f
для оставшейся части списка. Если первый элемент списка не является числом и не является пустым списком, то он присоединяется к результату вызова функции f
для оставшейся части списка.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д