Reference articles on history, science, culture and more
Encyclopedia

Predicate dispatch

Technique in computer programming

In computer programming, predicate dispatch is a generalisation of multiple dispatch ("multimethods") that allows the method to call to be selected at runtime based on arbitrary decidable logical predicates and/or pattern matching attached to a method declaration.

Raku supports predicate dispatch using "where" clauses that can execute arbitrary code against any function or method parameter.

Julia has a package for it with PatternDispatch.jl but otherwise natively supports multiple dispatch.

Experimental implementations have been created for Common LISP, and for Java (JPred).

It allows open extension of previously declared methods at a fine-grained level, but multiple extensions with identical or overlapping predicates created by different developers may interfere with each other in unanticipated ways. In this respect it is similar to aspect-oriented programming.

Watch videos about Predicate dispatchExplainers and documentaries on YouTube (opens in a new tab)

Sources and credits

This article is adapted from the Wikipedia article Predicate dispatch, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.

Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.