Je souhaite créer une fonction qui accepte un argument x obligatoire et un argument optionnel opt1 OU un argument mot-clé opt2.Mot-clé Clojure et problème d'argument facultatif
En ce moment, j'ai
(defn foo x & [opt1 {:keys [opt2]}]
...
Mais la signature ci-dessus me ne laisse passer que dans l'argument mot-clé opt2 lorsque x et OPT1 est présent comme
(foo 'x 'opt1 {:opt2 'opt2})
pas comme ça
(foo 'x {:opt2 'opt2})
S'il vous plaît aidez-moi à créer une fonction qui prend un argument requis X et soit opt1 ou opt2, whe re opt2 est un argument mot-clé.
Merci.
EDIT: Je veux faire de même pour les autres macros. Donc j'ai encore besoin d'utiliser le defmacro.
Utiliser 'defnk' de [clojure.contrib.def] (http://richhickey.github.com/clojure-contrib/def-api.html) au lieu de déstructuration explicite. – ffriend
'defnk' est déprécié au profit d'une fonctionnalité intégrée plus cohérente à partir de la version 1.2. – kotarak