Implementing Equational Constraints in a Functional Language

by Bernd Braßel, Michael Hanus, Björn Peemöller, Fabian Reck

Proc. of the 15th International Symposium on Practical Aspects of Declarative Languages (PADL 2013), Springer LNCS 7752pp. 125-140, 2013
© Springer-Verlag

KiCS2 is a new system to compile functional logic programs of the source language Curry into purely functional Haskell programs. The implementation is based on the idea to represent the search space as a data structure and logic variables as operations that generate their values. This has the advantage that one can apply various, in particular, complete search strategies or even user-defined strategies to compute solutions. However, the generation of all values for logic variables might be inefficient for applications that exploit constraints on partially known values. To overcome this drawback, we propose new techniques to implement equational constraints in this framework. In particular, we show how unification modulo function evaluation and functional patterns can be added without sacrificing the efficiency of the kernel implementation.

Preprint (PDF) BibTeX-Entry Online