Quiero crear una función que adopte un argumento obligatorio x, y un argumento opcional opt1 O un argumento de palabra clave opt2.Palabra clave de Clojure y argumento opcional Problema
Ahora mismo tengo
(defn foo x & [opt1 {:keys [opt2]}]
...
Pero la firma anterior sólo me permite pasar en opt2 argumento de palabra clave cuando tanto x como opt1 está presente como
(foo 'x 'opt1 {:opt2 'opt2})
no
gusta esta
(foo 'x {:opt2 'opt2})
Ayúdenme a crear una función que adopte un argumento obligatorio X y opt1 u opt2, cuando re opt2 es un argumento de palabra clave.
Gracias.
EDITAR: Quiero hacer lo mismo para otras macros también. Así que todavía necesito usar el defmacro.
considerar el uso de 'defnk' de [clojure.contrib.def] (http://richhickey.github.com/clojure-contrib/def-api.html) en lugar de desestructuración explícita. – ffriend
'defnk' está en desuso en favor de una funcionalidad incorporada más consistente a partir de 1.2. – kotarak