Logic Based Program Synthesis and Transformation

Volume 3901 of the series Lecture Notes in Computer Science pp 6-22

Declarative Programming with Function Patterns

  • Sergio AntoyAffiliated withComputer Science Dept., Portland State University
  • , Michael HanusAffiliated withInstitut für Informatik, CAU Kiel

* Final gross prices may vary according to local VAT.

Get Access


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.