Re: macro to unwrap a list

2016-02-15 Thread Gary Verhaegen
On Monday, 15 February 2016, Sonny To wrote: > I am trying to write a macro to unwrap a list: > > here's my naive attempt > > (defmacro unwrap [s] > (-> s pr-str (clojure.string/replace #"[\(\)]" "") read-string)) > > (unwrap (1 2 3) ) should give 1 2 3 > > any ideas how this can be done? > >

Re: macro to unwrap a list

2016-02-15 Thread Stuart Sierra
A macro can't do this, it must return a single form. But the `apply` function can do something similar in the context of a function call. (apply foo '(1 2 3)) is the same as (foo 1 2 3) –S On Monday, February 15, 2016 at 2:05:52 PM UTC-5, Sonny To wrote: > > I am trying to write a macro to un

Re: macro to unwrap a list

2016-02-15 Thread James Reeves
What do you mean by "unwrap a list"? If you mean something where: (foo (unwrap 1 2 3)) == (foo 1 2 3) Then I'm afraid this can't be done. A macro returns a single data structure. - James On 15 February 2016 at 18:54, Sonny To wrote: > I am trying to write a macro to unwrap a list: > > he