Path: utzoo!utgpu!watserv1!watmath!att!att!dptg!ulysses!andante!alice!pereira From: pereira@alice.att.com (Fernando Pereira) Newsgroups: comp.lang.prolog Subject: Re: Standards question: behavior of arg/3 Message-ID: <11526@alice.att.com> Date: 23 Oct 90 14:10:31 GMT References: <9888@bunny.GTE.COM> <3992@goanna.cs.rmit.oz.au> <1920@tuvie> <35019@cup.portal.com> <4037@goanna.cs.rmit.oz.au> <35150@cup.portal.com> Reply-To: pereira@alice.UUCP () Organization: AT&T, Bell Labs Lines: 36 In article <35150@cup.portal.com> pgl@cup.portal.com (Peter G Ludemann) writes: > - Prolog-II, Prolog-III, IBM-Prolog (and others?) have a more > generalized view of functors. For example, using this view, > one could define =../2 by the infinite list of clauses: > F =.. [F] . > F() =.. [F] . > F(A) =.. [F,A] . > F(A,B) =.. [F,A,B] . > etc. > Furthermore, a principal functor is not limited to be an atom; > it can be any term. Using the syntax <>, the principal > functor is itself a functor: f(a). > > Of course, this extended view is *not* Edinburgh Prolog > (which also doesn't properly support the "infinite rational > trees" of Prolog-II and IBM-Prolog) More seriously, it is also incompatible with standard logical and algebraic views of the universe of terms given as a free algebra over a signature given by the set of function symbols (with their arities). This is not just formal pedantry. Function symbols allow us to make more distinctions than are possible in a system based on a single `cons' constructor. Of course, it is possible to *encode* the terms over any finite signature as terms over a signature including just cons/2 and a suitable set of constants (to fake the function symbols), but such encodings are error-prone. There's preciously little data abstraction in the standard term algebra as it is. Obliterating the distinctions afforded by function symbols doesn't make the situation any better. In contrast, support for rational terms does not eliminate existing distinctions. Fernando Pereira 2D-447, AT&T Bell Laboratories 600 Mountain Ave, Murray Hill, NJ 07974 pereira@research.att.com