Я пытаюсь создать функцию, которая создает копии любого списка, который пользователь помещает на нужное количество копий.Функция копирования LISP
Пользователь: (копия '(A)' (7)) Выход: (AAAAAAA)
(defun copy (x y)
(cond ((-1 counter)
nil)
(T
(list (cons (car x) (cdr x)))
copy
(cdr x)))
Я пытаюсь настроить счетчик и просто создать новый список в текущий список по уменьшая счетчик. Пока счетчик является псевдокодом.
Это счетчик, который я пытаюсь выяснить.
(defun count (y)
(let ((a y))
(- a 1)))
Я получаю ошибку в том, что все, что я вкладываю в y
не число.
Из любопытства, почему вы хотите, чтобы передать аргументы в виде списков, когда один это просто элемент, а другой - просто число? – lurker
Возможно ли иметь оба? Скажите, что пользователь хочет: Пользователь: (A B C D E), и они хотят, чтобы каждый элемент был скопирован много раз (1 0 5 1 1 1). Таким образом, выход будет (A B B B B B C D E). – F0xcr4f7
Конечно. :) Вам просто нужно сделать это требование ясным в вашем вопросе. Этот случай не обязательно принимается вашим первым примером. – lurker