Pattern matching is the ability to trigger specific functionality based upon predefined patterns. These predefined patterns are applied to an incoming message (or user input).
There are somewhat related variations of this technique, which are referred to as runtime polymorphism and dynamic dispatch. In essence, these concepts refer to the selecting of an implementation based upon the known receiver at runtime. Pattern matching is similar, but from a practical standpoint is narrower in scope.
Clojure has a few different mechanisms for achieving this form of runtime dispatching of functionality. ...