He usado erlang en el pasado y tiene algunas cosas realmente útiles como funciones de coincidencia de patrones o "guardias de funciones". Ejemplo de docs Erlang es:Funciones de coincidencia de patrones en Clojure?
fact(N) when N>0 ->
N * fact(N-1);
fact(0) ->
1.
Pero esto podría ampliarse para un ejemplo mucho más complejo en el que la forma de parámetro y los valores dentro de ella se hacen coincidir.
¿Hay algo similar en clojure?
Esta es una vieja pregunta, pero esto proyecto expande core.match a funciones y es casi exactamente lo que estaba pidiendo hace años https://github.com/killme2008/defun – mikkom