z-logo
open-access-imgOpen Access
Functions and Lazy Evaluation in Prolog
Author(s) -
Juan Rodríguez-Hortalá,
Jaime Sánchez-Hernández
Publication year - 2008
Publication title -
electronic notes in theoretical computer science
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.242
H-Index - 60
ISSN - 1571-0661
DOI - 10.1016/j.entcs.2008.03.080
Subject(s) - computer science , programming language , prolog , functional programming , lazy evaluation , extension (predicate logic) , laziness , novelty , function (biology) , rule based machine translation , theoretical computer science , artificial intelligence , psychology , philosophy , theology , evolutionary biology , psychiatry , biology
There are several proposals for extending Prolog with functional capabilities. The basic idea is to enlarge the language with function definitions that are translated (or expanded) into Prolog predicates, analogously to what is done for Definite Clause Grammars (DCG's). It is easy to perform such a translation for a basic functional extension, but it requires an additional effort to incorporate more sophisticated functional capabilities such as higher order, lambda abstractions and lazy evaluation. In this paper we describe an extension that covers all these features. The main novelty is our treatment of laziness, as it is (optionally) associated to data type constructors instead of functions. We have found this approach very flexible, easy to use and efficient

The content you want is available to Zendy users.

Already have an account? Click here to sign in.
Having issues? You can contact us here
Accelerating Research

Address

John Eccles House
Robert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom