by Sergio Antoy, Michael Hanus
International Conference on Logic Programming (ICLP 2006), Springer LNCS 4079, pp. 87-101, 2006
© Springer-Verlag
Functional logic languages extend purely functional languages with two features: operations defined by overlapping rules and logic variables in both defining rules and expressions to evaluate. In this paper, we show that only one of these features is sufficient in a core language. On the one hand, overlapping rules can be eliminated by introducing logic variables in rules. On the other hand, logic variables can be eliminated by introducing operations defined by overlapping rules. The proposed transformations between different classes of programs not only give a better understanding of the features of functional logic programs but also may simplify implementations of functional logic languages.
Preprint (PDF) BibTeX-Entry Online