Presentation at ICFP conference
Tillmann Rendel
AlumniTillmann Rendel presents the paper Automatic
Refunctionalization to a Language with Copattern Matching at the
International Conference on Functional Programming in Vancouver,
British Columbia. The paper is joint work with
Julia Trieflinger
AlumniJulia Trieflinger and Klaus Ostermann
HeadKlaus Ostermann.
Abstract
Defunctionalization and refunctionalization establish a correspondence between first-class functions and pattern matching, but the correspondence is not symmetric: Not all uses of pattern matching can be automatically refunctionalized to uses of higher-order functions. To remedy this asymmetry, we generalize from first-class functions to arbitrary codata. This leads us to full defunctionalization and refunctionalization between a codata language based on copattern matching and a data language based on pattern matching.
We observe how programs can be written as matrices so that they are modularly extensible in one dimension but not the other. In this representation, defunctionalization and refunctionalization correspond to matrix transposition which effectively changes the dimension of extensibility a program supports. This suggests applications to the expression problem.