RELFUN: A relational/functional integration with valued clauses
- 1 December 1986
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 21 (12) , 87-98
- https://doi.org/10.1145/15042.15045
Abstract
The RELFUN programming language is introduced as an attempt to integrate the capabilities of the relational and functional styles. Definitions of functions and relations are specified uniformly by valued Horn clauses, where rules return the value of their rightmost premise. Functional nestings are flattened to relational conjunctions, using a purified version of PROLOG's is-primitive. RELFUN functions may have non-ground arguments, like relations, and/or return non-ground values; their input and output arguments can be inverted like those of relations. Higher-order functions are definable as (function-) valued clauses, with funarg problems being avoided by the standard renaming of clause variables. RELFUN's operational semantics is specified as an abstract machine, which also yields its first (e-mailable) FRANZ LISP implementation.Keywords
This publication has 2 references indexed in Scilit:
- Equality, types, modules, and (why not?) generics for logic programmingThe Journal of Logic Programming, 1984
- Oriented equational clauses as a programming languageThe Journal of Logic Programming, 1984