Cómo usar multi-methods en Clojure – Resuelto

Los multi-métodos en Clojure permiten definir métodos con múltiples dispatchers, lo que nos permite crear funciones con lógica especializada dependiendo de los tipos de los argumentos.

Uso básico de multi-methods

Podemos definir un multi-método usando defmulti y luego implementar diferentes métodos utilizando defmethod:

(defmulti saludar :idioma) (defmethod saludar :espanol [persona] (str "Hola, " (:nombre persona))) (defmethod saludar :ingles [persona] (str "Hello, " (:nombre persona)))