Abstract
In this paper an alternative list representation for logic programs is introduced, based on so-called segment variables. These variables represent a whole sublist (segment) of a list, that is, when substituting such a variable by a list, not the list itself, but its elements are considered the elements of the original list. The notion of segment variables was first introduced in the LISP70 pattern matcher [1], and was suggested to be used in PROLOG by Marc Eisenstadt, as a step towards a more human man-machine interface for PROLOG. The original motivation for using these variables was to simplify the definition of some basic list processing predicates, mainly by avoiding recursion.
However, we have shown that this list representation has an even more important advantage: it brings the declarative and the procedural semantics of several list handling predicates nearer to each other, e.g. allowing a more complete set of solutions or avoiding some infinite loops.
LISTLOG is a PROLOG extension, handling these list expressions; it is implemented as a front-end to PROLOG, providing an extended matching algorithm.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
Download to read the full chapter text
Chapter PDF
References
L.G.Tesler — H.J.Enea — D.S.Smith: The Lisp70 pattern matching system.
M.Eisenstadt: An improved man-machine interface for PROLOG. Imperial College — Open University joint project, 1984.
J.H.Stickman: Universal unification. 7th International Conference on Automated Deduction, LNCS 170, Springer Verlag, 1984.
Zs. Farkas: Length restricted segment variables in PROLOG. (in preparation)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1987 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Farkas, Z. (1987). Listlog — A PROLOG extension for list processing. In: Ehrig, H., Kowalski, R., Levi, G., Montanari, U. (eds) TAPSOFT '87. TAPSOFT 1987. Lecture Notes in Computer Science, vol 250. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0014974
Download citation
DOI: https://doi.org/10.1007/BFb0014974
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-17611-4
Online ISBN: 978-3-540-47717-4
eBook Packages: Springer Book Archive