Это для школьного задания.
Я написал несколько функций, каждая с разным количеством аргументов. Мне необходимо создать функцию REPL, которая будет работать со всеми функциями в моем проекте.
Для каждой функции:
Вот что у меня есть, поскольку моя функция REPL:
(setq funcList '(append. reverse map fold member insert intersection
union abs factorial right-tri gcd perfectp abundantp
deficientp))
(defun repl ()
(loop for f in funcList do
(loop
(format t "Enter a list of arguments for ~s (NIL to stop): " f)
(setq argsList (read))
(when (eq argsList nil) return nil)
(format t "(~s arguments-here) => output-of-function-here" f)
)
)
)
Я абсолютный новичок, когда дело доходит до lisp, поэтому, пожалуйста, не стесняйтесь критиковать мой код.
В любом случае я хочу использовать элементы в списке, которые я предлагаю пользователю ввести в качестве различных аргументов, требуемых текущей функцией, которую тестирует пользователь. Затем я бы вызвал функцию, используя что-то вроде:
(funcall f arg1 arg2...argk)
Я не знаю, каким образом я могу разделить элементы в списке на отдельные аргументы.
Есть ли способ сделать это? Я не обязан делать это со списком, поэтому примеры разных способов более чем приветствуются.
Спасибо.