New Functional Logic Design Patterns

by Sergio Antoy, Michael Hanus

Proc. of the 20th International Workshop on Functional and (Constraint) Logic Programming (WFLP 2011), Springer LNCS 6816, pp. 19-34, 2011
© Springer-Verlag

Patterns distill successful experience in solving common software problems. We introduce a handful of new software design patterns for functional logic languages. Some patterns are motivated by the evolution of the paradigm in the last 10 years. Following usual approaches, for each pattern we propose a name and we describe its intent, applicability, structure, consequences, etc. Our patterns deal with fundamental aspects of the design and implementation of functional logic programs such as function invocation, data structure representation and manipulation, specification-driven implementation, pattern matching, and non-determinism. We present some problems and we show fragments of programs that solve these problems using our patterns. The programming language of our examples is Curry. The complete programs are available on-line.

Preprint (PDF) BibTeX-Entry Online