Pattern matching with core.match
The first subject of this chapter is the pattern-matching library, core.match
. Pattern matching in computer languages is a method by which a given sequence of tokens is checked for the presence of specific markers of a pattern (which is typically either a sequence or a tree of some sort). The technique has a somewhat storied history going all the way back to the SNOBOL language (1962), with the first tree-based, pattern-matching features being introduced in an extension of LISP in 1970.
Pattern matching has a number of different practical uses, from search-and-replace algorithms and other low-level regular expression logic to general tree-based data processing. The particular pattern-matching algorithm used by both Clojure and ClojureScript's implementations in core.match
is an implementation of an algorithm described in Luc Maranget's paper, Compiling Pattern Matching to Good Decision Trees.
Configuring our project
core.match
, like core.async
, is not a part...