| | |
Summary: GĻodel with User-defined Evaluable Functions
Vision for the Future of Logic Programming: Laying the Foundations of a Modern Successor to Prolog. A
Workshop in Association with the International Logic Programming Symposium. Portland, OR, Dec. 1995,
pages 3746.
Sergio Antoy David Shapiro Janet Vorvick
Portland State University
Abstract
We report our experience extending a logic programming language with a first-order functional
component. Functional expressions are evaluated by narrowing and can contain logic variables
for a seamless integration with the logic component of the language. Our experiment shows
that our extension is achievable with a modest effort. It also suggests some changes to the
syntax and semantics of the initial logic component of the language that would ease the use and
implementation of the functional component.
1 Introduction
Logic languages may benefit from allowing the definition of functions in addition to predicates
and performing functional computations in addition to logic computations. A significant problem
presented by the presence of functions in a logic language is this: what shall we do when a function is
applied to arguments that are (or contain) logic variables. A solution to this problem is narrowing.
The focus of this note is on narrowing as the means for the integration of functional and logic
computations. Our specific goals are the application of needed narrowing and the implementation
|