Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!swrinde!cs.utexas.edu!uunet!munnari.oz.au!goanna!ok From: ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) Newsgroups: comp.lang.prolog Subject: Re: Fallibility of the sane Message-ID: <5449@goanna.cs.rmit.oz.au> Date: 30 Apr 91 02:22:13 GMT References: <5384@goanna.cs.rmit.oz.au> <1991Apr26.081315.18922@canon.co.uk> Distribution: comp Organization: Comp Sci, RMIT, Melbourne, Australia Lines: 27 In article <1991Apr26.081315.18922@canon.co.uk>, imlah@canon.co.uk (Bill Imlah) writes: > ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) writes: > >Why in the name of sanity are > >you abusing the word "functor" (which means a pair consisting of a > >function symbol and an arity, e.g. fred/2) when you mean "term"? > Surely its [sic] an [sic] common mistake. Mostly people coming to > grips with Prolog don't play around with terms enough > for the distinction to become salient. But every argument to any Prolog predicate *is* a term. The only way one can fail to "play around with terms" is to write only predicates that have no arguments! Surely the language itself makes it plain: "functors" are the things that "functor/3" gives you. The DEC-10 Prolog manual contained the statement "one may think of a functor as a record type"; that's been copied into several manuals. Do Pascal programmers talk about individual records as "types"? An explanation I _would_ believe is "shockingly bad teaching". I am sick of Prolog text-books written by people who didn't bother to learn the language. -- Bad things happen periodically, and they're going to happen to somebody. Why not you? -- John Allen Paulos.