Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!rutgers!pyrnj!pyrdc!uunet!mcvax!ukc!dcl-cs!simon From: simon@comp.lancs.ac.uk (Simon Brooke) Newsgroups: comp.lang.prolog Subject: Re: The meaning of "declarative" Message-ID: <590@dcl-csvax.comp.lancs.ac.uk> Date: 17 Oct 88 15:11:51 GMT References: <818@etive.ed.ac.uk> Reply-To: simon@comp.lancs.ac.uk (Simon Brooke) Distribution: comp.lang.prolog Organization: Department of Computing at Lancaster University, UK. Lines: 55 In article <818@etive.ed.ac.uk> jha@lfcs.ed.ac.uk (Jamie Andrews) makes some assertions which I find contentious: > > BTW, re. my comment about functional programming: logic >programming uses the language of logic, which is (by definition, >almost) very close to the way we think and deduce information >from assumptions. Oh, come on now! Very, very few people can even be taught logic. Most of those who can will always find it excrutiatingly difficult. It is a most unnatural and tedious way of 'deducing information from assumptions'; and if you cand find anyone who thinks logically, I wish you'ld introduce them to me - it would be a new and fascinating experience. >So logic programming is very useful for >systems with lots of logical dependencies (expert systems, That's a pretty bald assertion, too. The resolution theorem prover is not good either at handling uncertainty or at generating highlevel explanation traces; consequently, to implement an expert system, you essentially have to implement a new inference mechanism. But my experience (and judging by the lack of Prolog-based expert systems out there in the real world, other people's, too) is that Prolog is not an easy language in which to write an inference engine. >protocol testers, etc.), and its structure corresponds to a wide >class of problems. Functional programming can make no such >claim -- very few problems seem better thought of in terms of >mathematical functions. The main thing that functional >programming seems to offer over relational is a clear and >deterministic decision procedure. > Well yes, and that's a serious point. The notion that you can write declarative code in Prolog is a nice one, and it may be that there are some people out there who can do it. Me, I can't, and God knows I've tried. Furthermore, I haven't seen any significant chunk of declarative code written in Prolog by anyone else either. Most Prolog programs which do anything useful are procedural; but when a piece of procedural Prolog goes wrong, it is (in my experience) horrible to debug. >--Jamie. > jha@lfcs.ed.ac.uk >"I always find mathematics so difficult" -- D.Hilbert And as for David #@%*&!* Hilbert and his assertion that '...after w (omega), counting continues naturally w+1, w+2, w+3...' I don't believe it and never did. ** Simon Brooke ********************************************************* * e-mail : simon@uk.ac.lancs.comp * * surface: Dept of Computing, University of Lancaster, LA 1 4 YW, UK. * * * * Thought for today: isn't it time you learned the Language * ********************* International Superieur de Programmation? *********