Copattern matching and first-class observations in OCaml, with a macro
Abstract
Infinite data structures are elegantly defined by means of copattern
matching, a dual construction to pattern matching that expresses
the outcomes of the observations of an infinite structure. We extend
the OCaml programming language with copatterns, exploiting the
duality between pattern matching and copattern matching. Pro-
vided that a functional programming language has GADTs, every
copattern matching can be transformed into a pattern matching via
a purely local syntactic transformation, a macro. The development
of this extension leads us to a generalization of previous calculus of
copatterns: the introduction of first-class observation queries. We
study this extension both from a formal and practical point of view.
Origin | Files produced by the author(s) |
---|
Loading...