Вставка элемента в определенное место списка - Lisp

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

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

Добрый вечер, пишу программу на Common Lisp
(defun Del (n c sp)
   (setq k 0)
   (setq z 0)
   (setq x 0)
   (dolist (el sp s)
      (if (= k n)(and (setq z (subseq sp 0 k)) (setq x (subseq sp k))))
      (setq k (+ k 1))
    ) 
   (setq l (append z c))
   (setq fin (append l x))
   (return-from Del fin)
)
 
(set 'LIST '(8 7 6 5 4 3 2 1 0 -1 -2 -3 -9 -5 -6 -7 -8 -4))
(print "vvod:") (set 'P (read))
(set LIST (Del 4 P LIST))
(print LIST)
После ввода выдает ошибку: "Attempt to read past end of stream", не знаю как исправить. И подскажите правильно ли я ввожу нужное мне число, так как знаю что append-у нужны только списки, но я не уверен что P - список)

Решение задачи: «Вставка элемента в определенное место списка»

textual
Листинг программы
(defun f (x)
  (* x 2))

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

В данном коде определен функционал, который получает на вход некий элемент и возвращает его умноженным на два. Список элементов кода с объяснением:

  1. (defun f (x) — функция с именем f определена, принимает один аргумент x)
  2. (* x 2) — внутри функции происходит умножение аргумента x на два
  3. ) — закрывается функция Пример использования функции: (f 5) — вызов функции f с аргументом 5 В результате выполнения кода будет возвращено значение 10

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

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