Path: utzoo!attcan!uunet!tank!ncar!gatech!bloom-beacon!tut.cis.ohio-state.edu!mailrus!cornell!uw-beaver!teknowledge-vaxc!sri-unix!quintus!ok From: ok@quintus.uucp (Richard A. O'Keefe) Newsgroups: comp.lang.prolog Subject: Re: The meaning of "declarative" Message-ID: <517@quintus.UUCP> Date: 10 Oct 88 04:33:07 GMT References: Sender: news@quintus.UUCP Reply-To: ok@quintus.UUCP (Richard A. O'Keefe) Distribution: comp.lang.prolog Organization: Quintus Computer Systems, Inc. Lines: 19 In article alf@sics.se (Thomas Sj|land) writes: >Statement 1, (commonly accepted, it seems, although the meaning is unclear): > "Prolog is a declarative language" Like "The USA is a democracy", it may be commonly accepted, but it isn't true. (The USA is, by design, a _republic_, not a pure democracy.) It is possible to write a Prolog program in which most of the code can be taken as declarative, just as it is possible to write pure functional code in Lisp. In both languages, it is a good idea to write pure code whenever you can. "Prolog is _based_ on a declarative language", perhaps. >Statement 2, (viewpoint held by some experts who agree to statement 1): > "functional languages are NOT declarative, while logic programming > and equational languages are if they have completeness" Please name these experts, so that I will know whose books to avoid! I wonder whether there is any virtue in declarativeness as such, or whether the real issue may not be hidden dependencies within a program?