dans le clojure, je peux déstructurer une carte comme ceci: qui est similaire à la méthode du CoffeScript: p> Coffescript peut aussi Faites ceci: p> a = 1
b = 2
obj = {a, b} // just like writing {a: a, b: b}
4 Réponses :
La réponse courte est: non. P>
La raison principale est qu'en clojure, pas seulement des mots-clés, mais toute valeur peut être utilisée comme clé sur une carte. En outre, les virgules sont des espaces dans le clojure. Donc Vous pouvez toutefois écrire une macro qui prend une liste de symboles et crée une carte avec les noms des symboles (convertis en mots-clés) comme des clés et des évaluations des symboles comme valeurs. P> {a, b} code> est identique que
{ab} code> et entraînera une carte avec une paire à valeur de clé, où la clé est autre que
a < / code> évalue à. p>
J'ai écrit une macro simple pour cela dans utile , qui vous permet d'écrire cela comme (clé [ab]) code>. Ou vous pouvez parallèlement le: STRS et: SYMES Comportement de la carte de la carte avec
(Keyed: STR [AB]) CODE>, qui se développe à
{"A" A, "B" B} code>. p>
utile est en effet utile! Y a-t-il une documentation n'importe où?
@benekastah pas vraiment. Vous pouvez lire la source et regarder les tests - la plupart des fonctions sont testées d'une manière qui permet d'effacer la façon dont elles sont censées être utilisées.
Ce n'est pas fourni, mais peut être mis en œuvre avec une macro assez simple:
user=> (def x 1) #'user/x user=> (def y 2) #'user/y user=> (def z 3) #'user/z user=> (rmap x y z) {:z 3, :y 2, :x 1}
Je ne pense pas que cela soit fourni hors de la boîte à Clojure .. Mais bon cela est Lisp et nous pouvons utiliser des macros pour avoir quelque chose comme ceci: utilisation: p> résultat serait votre carte p> p>