2011-04-06 12 views

Respuesta

8

No entendía por completo a su pregunta, pero creo que desea enviar sólo en un argumento. Puedes hacerlo así, creo:

user=> (defmulti even-or-odd (fn [x _] (even? x))) 
#'user/even-or-odd 
user=> (defmethod even-or-odd true [a _] :even) 
#<MultiFn [email protected]> 
user=> (defmethod even-or-odd false [a _] :odd) 
#<MultiFn [email protected]> 
user=> (even-or-odd 2 3) 
:even 
user=> (even-or-odd 3 3) 
:odd 
user=> 
6

¿Quiere decir seleccionar la función basada en el valor de un?

continuación, sólo tiene

(defmulti some-method (fn [a b] a)) 
Cuestiones relacionadas