O'Reilly logo

Clojure for Java Developers by Eduardo Díaz

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Multimethods in Clojure

Multimethods are similar to interfaces, they allow you to write a common contract and then a family of functions can fulfill that interface with a specific implementation.

They are extremely flexible, as you will see they grant you a very fine control over what function is going to get invoked for a specific data object.

Multimethods consist of three parts:

  • A function (or method) declaration
  • A dispatch function
  • Each possible implementation of the function

One of the most interesting features of multimethods is that you can implement new functions for already existing types without having to write wrappers around your currently existing object.

The multimethod declaration works the same way as the interface; you define a common ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required