A macro to define clojure functions with pattern matching just as erlang or elixir.