Can someone explain Clojure's unquote-splice in simple terms?

Solution 1:

I'm no expert on Clojure, but since it's basically a Lisp, things should be like that unquote-splice is unquote which merges the list to the position where it's used. Difference looks like this:

`(1 2 ~(list 3 4))   =>  (1 2 (3 4))
`(1 2 ~@(list 3 4))  =>  (1 2 3 4)

`  == syntax-quote
~  == unquote
~@ == unquote-splice