Default Rules: An Extension of Constructive Negation for Narrowing-based Languages
Juan José Moreno-Navarro · The MIT Press eBooks · 1994
In this paper an extension of narrowing-based functional logic languages is proposed: Every partial definition of a function can be completed with a default rule. In a concrete function call, the default rule is applicable when the normal ones determine that they cannot compute the value of the call. The use of the default rule, in the presence of a goal with variables, is constructive. The operational semantics provides constraints to the variables to make the default rule applicable. Narrowing semantics are modified extending the technique of constructive negation [3, 4, 17]. 1 Introduction Narrowing is a unification based parameter passing mechanism which subsumes rewriting and SLD resolution. Different versions of narrowing have been used as the operational semantics of programming languages. In particular, so called functional logic languages retain functional syntax but use narrowing as operational semantics. They have been proposed to combine the functional and logic programmi...