Take the tour ×  I'm a Clojure novice and was looking for some
concrete examples of when to use protocols and when to use
multimethods. I know that protocols are generally geared towards
creating a type hierarchy and typical OOP things, that they were
added to the language after multimethods, and that protocols
generally have better performance so my question is this:  Are
protocols meant to replace multimethods? If not, could you give
me an example where I would use multimethods instead of
protocols?  share|improve this question add comment  3 Answers
up vote 21 down vote accepted  Multimethods are more powerful
and more expensive,  use protocols when they are sufficient but
if you need to dispatch based on the phase of the moon as seen
from mars then multimethods are your best choice.  Protocols
exist to allow the simple stuff to stay simple and provide a way
for clojure to generate very much the same bytecode that the
equivalent java would. It seems that most people use protocols
most of the time. I use m