43 votes

Quelqu'un peut-il expliquer en termes simples l'unquote-splice de Clojure ?

Je me frappe la tête contre le mur en essayant de comprendre certaines macros Clojure qui utilisent unquote-splice, et je n'arrive pas à trouver une explication claire de leur utilité. Quelqu'un peut-il me l'expliquer en termes simples ?

51voto

Mirek Kratochvil Points 552

Je ne suis pas un expert de Clojure, mais comme c'est fondamentalement un Lisp, les choses devraient être comme ça unquote-splice est unquote qui fusionne la liste à la position où il est utilisé. La différence ressemble à ceci :

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

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X