Overlapping Pattern Matching for Programming with Continuous Functions. Northeastern University PRL Seminar. February 24, 2017.
Abstract: Topology, when viewed from an unusual perspective (formal topology), describes how to compute with certain objects that are beyond the reach of induction, such as real numbers, probability distributions, streams, and function spaces. Accordingly, one gets a programming language whose types are spaces and whose functions are continuous maps.
Does this language have pattern matching? In functional programming, pattern matching allows definition of a function by partitioning the input and defining the result in each case. We generalize to programming with spaces, where patterns need not represent decidable predicates and also may overlap, potentially allowing nondeterministic behavior in overlapping regions. These overlapping pattern matches are useful for writing a wide array of computer programs on spaces, such as programs that make approximate computations or decisions based on continuous values or that manipulate "partial" datatypes.
This talk will introduce topology from a computational perspective, and explore some programs that can be built with this framework using overlapping pattern matching.
Programming with continuous spaces. New England Programming Languages and Systems Symposium. October 7, 2016.
Programming on continuous spaces. MIT CSAIL PL Lunch. May 2016.
An introduction to formal topology, with a glimpse of its ability to give computational content to classically-nonconstructive theorems of topology.