Abstract
We define a computational model for a logical extension of Scheme, and give a metacircular evaluator for it. This minimal extension incorporates two new features only, i.e. logical variables and clause expressions, which can be used to define predicates in exactly the same way as lambda expressions can be used to define functions.
Higher-order properties of Scheme are preserved: predicates can be passed to and returned from function applications. Predicate applications can appear as terms in functions. On the other hand, function applications can appear as terms in predicates, and can be formal as well as actual arguments, but only as long as they can be evaluated according to the usual Scheme semantics prohibiting access to unbound variables (except for constructor applications).
Similar content being viewed by others
References
Abelson, A. and Sussman, G.J.Structure and Interpretation of Computer Programs. MIT Press, Cambridge, Massachusetts (1985).
Bonzon, P. An environment model for the integration of logic and functional programming. InProceedings of the 10th International Joint Conference on Artificial Intelligence, Milano, Italy (1987).
Darlington, J., Field, A. J., and Pull, H. The unification of functional and logic languages. In De Groot, D. and Lindstrom, G., editors,Logic Programming: Relations, Functions, and Equations, Prentice-Hall (1986).
Dincbas, M. and van Hentenryck, P. Extended unification algorithms for the integration of functional programming.Journal of Logic Programming, 4 (1987).
Haynes, Ch. T. Logic continuations.Journal of Logic Programming, 4 (1987).
Reddy, U.S. On the relationship between logic and functional languages. In De Groot, D. and Lindstrom, G., editors,Logic Programming: Relations, Functions, and Equations, Prentice-Hall (1986).
Robinson, J.A. and Sibert, E.E. Loglisp: motivation, design, and implementation. In Clark, K.L. and Tarnlund, S.A., editors,Logic Programming, Academic Press (1982).
Srivastava, A., Oxley, D., and Srivastava, D. Integration of logic and functional programming. InIEEE Symposium on Logic Programming,, Boston (1985).
Thrift, Ph. Common lisp relations: an extension of lisp for logic programming. InProceedings of the 1988 International Conference on Computer Languages, Miami Beach (1985).
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Bonzon, P.E. A metacircular evaluator for a logical extension of Scheme. Lisp and Symbolic Computation 3, 113–134 (1990). https://doi.org/10.1007/BF01806255
Issue Date:
DOI: https://doi.org/10.1007/BF01806255