Cómo usar multimétodos en Clojure – Resuelto

Los multimétodos en Clojure permiten definir diferentes implementaciones para una misma función según las características de los argumentos.

Definir un multimétodo

Definimos un multimétodo usando defmulti y luego varias implementaciones con defmethod:

(defmulti saludo (fn [x] (:tipo x))) (defmethod saludo :formal [persona] (str "Hola, " (:nombre persona)))