J'ai un problème simple de syntaxe clojure (bc je suis nouveau dans la langue). pour les deux exemples i ai une lst liste de (1 2 3 4):Problème clojure unqoute
en Lisp i peut écrire:
=> `(premier de la liste est, (première lst))
(première de la liste est 1)
dans Clojure, si j'écris la même chose (avec la traduction de langue, à ~ que je pensais que je lis quelque part) je reçois:
=> '(première de liste est ~ (premier lst))
(première de la liste est (clojure.core/unquote (première LST)))
j'espérais que je peux faire ce que je veux dans Clojure aussi bien, et que je viens de la syntaxe erronée. tous les exemples que je trouve ont cependant des fonctions en premier et utilisent un `(backtick). Je ne veux pas appeler une fonction comme:
`(ma fonction ~ (première LST))
je veux juste revenir « (une liste avec, (premier LST) remplacé dans ce
Puis-je faire une telle chose dans Clojure?
EDIT: j'ai donné un mauvais exemple vu que mon problème réel traitait des chaînes. permettez-moi d'essayer un autre exemple ...
=> (définition couleur LST « (rouge vert bleu))
ce que je voulais retourner était:
=>` (La couleur que je veux est ~ (première couleur-lst))
ce yeilded tous les étranges retours que j'ai vu. l'autre façon de le faire est
=> (format "la couleur que je veux est% s" (première couleur LST))
c'est comment je résolu mon problème.
Alors que d'autres vous déjà aidé à résoudre votre problème, sachez que ce n'est pas la façon Clojure. par exemple. Au lieu de symboles, clojure utilise des mots-clés. Si vous voulez des chaînes (comme dans votre exemple), utilisez-les. Tout le '~' est moche. Et vous rencontrerez un bug difficile à trouver tôt ou tard. – kotarak
tout ce '' et ~ est généralement utilisé avec des macros. évitez-les autant que possible, sauf si nécessaire. –