%EXPAND-FORM: (EQL N 0) should be a lambda expression - Lisp

Узнай цену своей работы

Формулировка задачи:

http://ideone.com/PsVwBi подскажите: в чем пробдлема? Заранее благодарен.

Решение задачи: «%EXPAND-FORM: (EQL N 0) should be a lambda expression»

textual
Листинг программы
(defun [] (l n) 
    (cond ((eql n 0) (car l))
    (t  ([] (cdr l) (- n 1)))
))
 
 
 
==> []
 
([] '(q w e r) 3)
 
==> r

Объяснение кода листинга программы

В данном коде определён пользовательский функтор с именем EQL. Он принимает два аргумента — l и n. Если n равно 0, то возвращается первый элемент списка l. В противном случае, из списка l удаляется элемент с индексом n (считая с 0), и возвращается получившийся список. Код можно представить в виде списка, где каждому элементу списка соответствует номер, а сам элемент — это пара название переменной: значение.

  1. (defun [] (l n) ...)
  2. (cond ((eql n 0) (car l))
  3. (t ([] (cdr l) (- n 1)))
  4. [...]
  5. ([] '(q w e r) 3)
  6. ...
  7. ==> r Название переменной: l Значение: список с элементами '(q w e r) Название переменной: n Значение: 3 Название переменной: l Значение: список с элементами '(w e r) Название переменной: n Значение: 2 Название переменной: l Значение: список с элементами '(e r) Название переменной: n Значение: 1 Название переменной: l Значение: список с элементами '(r) Название переменной: n Значение: 0 Название переменной: l Значение: первый элемент списка '(r) Название переменной: n Значение: -1 Название переменной: l Значение: пустой список

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.25 из 5
Похожие ответы