The following piece of code gives me the expected result:
(let ((name 'test)
(args '("arg1" "arg2")))
`(defun ,name ,@args))
;; (DEFUN TEST "arg1" "arg2")
Why if args
is a list of symbols does a QUOTE
appear?
(let ((name 'test)
(args '('arg1 'arg2)))
`(defun ,name ,@args))
;; (DEFUN TEST (QUOTE ARG1) 'ARG2)
('arg1 'arg2)
isn't a list of symbols, it's a list of lists. The first list is(quote arg1)
and the second is(quote arg2)
. - Joshua Taylor(quote x)
as'x
. - Sylwester