Imagine I got some kind of function called by a macro to return an expression like
(do-something 'argument)
therefore the function has to look like
(defun form-expression (arg)
`(do-something ',arg))
But when called (form-expression "foobar"), as the wrapping macro has to receive strings as parameters, the result is:
(do-something '"foobar")
How can I “remove” the quotation marks of the given string?
If I’m understanding you correctly, for an input of “foobar”, you want the result of
form-expressionto be(do-something 'foobar).If that’s the case, use the
internfunction. You’ll either need to pass theinterned string (as in(form-expression (intern "foobar"))), or you’ll need to do type dispatch in the functionActually, since you’re dispatching on the type of the argument, this is a perfect place to use a method.