Список без чисел - 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
для оставшейся части списка.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д