How do I splice into a list outside of a macro in Common Lisp?
Posted
by derefed
on Stack Overflow
See other posts from Stack Overflow
or by derefed
Published on 2010-04-13T05:52:48Z
Indexed on
2010/04/13
9:32 UTC
Read the original article
Hit count: 224
common-lisp
Say I have a function foo:
(defun foo (x y &rest args)
...)
And I later want to wrap it with a function bar:
(defun bar (x &rest args)
(foo x 100 args))
Assume bar was then called like this: (bar 50 1 2 3)
With this setup, args is a list within the body of bar that holds the trailing parameters, so when I pass it to foo, instead of getting the equivalent of (foo 50 100 1 2 3)
I of course get (foo 50 100 '(1 2 3))
. If these were macros, I would use `(foo ,x 100 ,@args)
within the body of bar to splice args into the function call. ,@ only works inside a backtick-quoted list, however.
How can I do this same sort of splicing within a regular function?
© Stack Overflow or respective owner