@ARTICLE{AntoyHanus17TPLP,
author    = "Antoy, S. and Hanus, M.",
title     = "Default Rules for {Curry}",
year      = "2017",
journal   = {Theory and Practice of Logic Programming},
number    = {2},
pages     = {121-147},
publisher = {Cambridge University Press},
volume    = {17},
abstract = {
In functional logic programs, rules are applicable independently of
textual order, i.e., any rule can potentially be used to evaluate an
expression.  This is similar to logic languages and contrary to
functional languages, e.g., Haskell enforces a strict sequential
interpretation of rules.  However, in some situations it is convenient
to express alternatives by means of compact default rules.  Although
default rules are often used in functional programs, the
non-deterministic nature of functional logic programs does not allow
to directly transfer this concept from functional to functional logic
languages in a meaningful way.  In this paper we propose a new concept
of default rules for Curry that supports a programming style similar
to functional programming while preserving the core properties of
functional logic programming, i.e., completeness, non-determinism, and
logic-oriented use of functions. We discuss the basic concept and
propose an implementation which exploits advanced features of
functional logic languages.
}
}
