Ошибка в маленькой функции-Lisp
Формулировка задачи:
Здравствуйте, недавно начала изучать Lisp.
При вводе данных в функцию
вылазит ошибка Evaluate (SECOND X) and ignore the rest.
Поясните, пожалуйста, почему так. Буду очень благодарна
(DEFUN proverka(X) (if ((SECOND X) EQUAL NIL ) (PRINC "Второй элемент NIL!") ) )
Решение задачи: «Ошибка в маленькой функции-Lisp»
textual
Листинг программы
(defn length-or-more (l n) (defn go (l a) cond (null? l) a (> a n) (++ "более чем " n) (go (cdr l) (+ 1 a))) (go l 0)) (def proverka (x) (print "список из " (length-or-more x 4) "элементов") x)
Объяснение кода листинга программы
- Создаётся функция
length-or-more
, которая принимает два аргументаl
иn
. - Внутри функции определена вложенная функция
go
, которая также принимает два аргументаl
иa
. - Вложенная функция
go
проверяет условиеnull? l
, если оно истинно, то возвращает значение переменнойa
. - Если условие
null? l
ложно, то функцияgo
рекурсивно вызывается с новыми аргументами(cdr l)
и(+ 1 a)
. - Вложенная функция
go
также проверяет условие> a n
, если оно истинно, то возвращает значение переменнойa
, к которой добавляется строкаболее чем
и значение переменнойn
. - Вложенная функция
go
рекурсивно вызывается с новыми аргументами(cdr l)
и(+ 1 a)
. - Вложенная функция
go
рекурсивно вызывается с новыми аргументами(cdr l)
и(+ 1 a)
. - Вложенная функция
go
рекурсивно вызывается с новыми аргументами(cdr l)
и(+ 1 a)
. - Вложенная функция
go
рекурсивно вызывается с новыми аргументами(cdr l)
и(+ 1 a)
. - Вложенная функция
go
рекурсивно вызывается с новыми аргументами(cdr l)
и(+ 1 a)
. - Вложенная функция
go
рекурсивно вызывается с новыми аргументами(cdr l)
и(+ 1 a)
. - Вложенная функция
go
рекурсивно вызывается с новыми аргументами(cdr l)
и(+ 1 a)
. - Вложенная функция
go
рекурсивно вызывается с новыми аргументами(cdr l)
и(+ 1 a)
. - Вложенная функция
go
рекурсивно вызывается с новыми аргументами(cdr l)
и(+ 1 a)
. - Вложенная функция
go
рекурсивно вызывается с новыми аргументами(cdr l)
и(+ 1 a)
. - Вложенная функция
go
рекурсивно вызывается с новыми аргументами(cdr l)
и(+ 1 a)
. - Вложенная функция
go
рекурсивно вызывается с новыми аргументами(cdr l)
и(+ 1 a)
. - Вложенная функция
go
рекурсивно вызывается с новыми аргументами(cdr l)
и(+ 1 a)
. - Вложенная функция
go
рекурсивно вызывается с новыми аргументами(cdr l)
и(+ 1 a)
. - Вложенная функция
go
рекурсивно вызывается с новыми аргументами(cdr l)
и(+ 1 a)
. - Функция
length-or-more
вызывает функциюgo
с аргументамиl
и0
. - Значение переменной
x
передаётся в функциюprint
для вывода на экран. - В консоль выводится строка
список из
и результат работы функцииlength-or-more
с аргументамиx
и4
. - Значение переменной
x
возвращается в качестве результата работы функцииproverka
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д