Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!ames!pasteur!ucbvax!decwrl!sun!pitstop!sundc!seismo!uunet!munnari!mulga!ttey From: ttey@mulga.oz (YEO Tee Thiam Eric) Newsgroups: comp.lang.prolog Subject: Re: The meaning of "declarative" Message-ID: <2997@mulga.oz> Date: 8 Oct 88 04:06:06 GMT References: <152@s1.sys.uea.ac.uk> Distribution: comp.lang.prolog Organization: Comp Sci, Melbourne Uni, Australia Lines: 18 in article <152@s1.sys.uea.ac.uk>, kh@s1.sys.uea.ac.uk (Kevin Hammond CMP) says: > But Lisp has assignment, I/O and other imperative features. How can it > be declarative? Lisp is functional yes (it has higher order > functions), but declarative no. I believe that "declarative" is a relative adjective when used in the context of programming languages. When talking about programming languages, one should talk about the degree of "declarativeness". If one say that Prolog is a declarative language, one could also argue that there are features in Prolog which makes it "non-declarative", e.g. the cut. Certainly, there is a subset of Lisp (pure Lisp) which conforms to our notion of "declarativeness" as there is a subset of Prolog. Instead of branding a programming language as "declarative" or "non-declarative" we should consider the features of the language which encourages the declarative style of programming. Eric Yeo