A Call-by-Need Strategy for Higher-Order Functional-Logic Programming
Christian Prehofer · The MIT Press eBooks · 1995
We present an approach to truely higher-order functional-logic programming based on higher-order narrowing. Roughly speaking, we model a higherorder functional core language by higher-order rewriting and extend it by logic variables. For the integration of logic programs, conditional rules are supported. For solving goals in this framework, we present a complete calculus for higher-order conditional narrowing. We develop several refinements that utilize the determinism of functional programs. These refinements can be combined to a narrowing strategy which generalizes call-by-need as in functional programming, where the dedicated higher-order methods are only used for full higher-order goals. Furthermore, we propose an implementational model for this narrowing strategy which delays computations until needed. 1 Introduction We present a novel approach towards the integration of higher-order functional and logic programming (for a survey see [6]). The goal was to design a simple language...