Получить индекс элемента - Lisp

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

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

Помогите пожалуйста решить Определить рекурсивную функцию. Распечатать результаты трассировки. Указать вид трассировки.Указать вид рекурсии(рекурсия по значению или по аргументу)В задании все операции над списками выполняются только с элементами верхнего уровня,хотя списки могут содержать подсписки.Рекурсия выполняется только в направлении CDR списка. (INDEX i x) выдает i элемент списка x (предполагается что x имеет длину не меньше i).

Решение задачи: «Получить индекс элемента»

textual
Листинг программы
(defun index (e x)
  (cond ((eq e (car x)) 0)
        (t (+ 1 (index e (cdr x))))))
 
==> INDEX
 
(trace index)
 
==> INDEX
 
(index 'e '(q w e r t y))
 
Вход в функцию index Аргументы: E (Q W E R T Y)
  Вход в функцию index Аргументы: E (W E R T Y)
    Вход в функцию index Аргументы: E (E R T Y)
    Возврат из функции index Результат: 0
  Возврат из функции index Результат: 1
Возврат из функции index Результат: 2
 
==> 2

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

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