Вставка элемента в определенное место списка - Lisp
Формулировка задачи:
Добрый вечер, пишу программу на Common LispПосле ввода выдает ошибку: "Attempt to read past end of stream", не знаю как исправить.
И подскажите правильно ли я ввожу нужное мне число, так как знаю что append-у нужны только списки, но я не уверен что P - список)
(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)
Решение задачи: «Вставка элемента в определенное место списка»
textual
Листинг программы
(defun f (x) (* x 2))
Объяснение кода листинга программы
В данном коде определен функционал, который получает на вход некий элемент и возвращает его умноженным на два. Список элементов кода с объяснением:
- (defun f (x) — функция с именем f определена, принимает один аргумент x)
- (* x 2) — внутри функции происходит умножение аргумента x на два
- ) — закрывается функция Пример использования функции: (f 5) — вызов функции f с аргументом 5 В результате выполнения кода будет возвращено значение 10