Declarative Programming with Function Patterns

by Sergio Antoy, Michael Hanus

Proceedings of the International Symposium on Logic-based Program Synthesis and Transformation (LOPSTR'05), Springer LNCS 3901, pp. 6-22, 2006

We propose an extension of functional logic languages that allows the definition of operations with patterns containing other defined operation symbols. Such "function patterns" have many advantages over traditional constructor patterns. They allow a direct representation of specifications as declarative programs, provide better abstractions of patterns as first-class objects, and support the high-level programming of queries and transformation of complex structures. Moreover, they avoid known problems that occur in traditional programs using strict equality. We define their semantics via a transformation into standard functional logic programs. Since this transformation might introduce an infinite number of rules, we suggest an implementation that can be easily integrated with existing functional logic programming systems.

Preprint (PDF) BibTeX-Entry Online