Newsgroups: comp.lang.prolog,comp.lang.lisp
Path: cantaloupe.srv.cs.cmu.edu!bb3.andrew.cmu.edu!newsfeed.pitt.edu!godot.cc.duq.edu!newsgate.duke.edu!news.mathworks.com!newsfeed.internetmci.com!newsxfer2.itd.umich.edu!uunet!in3.uu.net!news-m01.ny.us.ibm.net!news.biu.ac.il!discus.technion.ac.il!news!qobi
From: qobi@eesun.technion.ac.il (Jeffrey Mark Siskind)
Subject: Re: What to learn: Prolog or Lisp?
Reply-To: Qobi@EE.Technion.AC.IL
Organization: Technion, Israel Institute of Technology
Date: Thu, 25 Jul 1996 12:29:24 GMT
Message-ID: <QOBI.96Jul25152924@eesun.technion.ac.il>
In-Reply-To: Michael Jampel's message of Mon, 22 Jul 1996 11:20:22 +0100
X-Nntp-Posting-Host: eesun.technion.ac.il
References: <741972130wnr@bluebean.demon.co.uk> <31F355E6.C1D@info.fundp.ac.be>
Sender: news@discus.technion.ac.il (News system)
Lines: 29
Xref: glinda.oz.cs.cmu.edu comp.lang.prolog:15835 comp.lang.lisp:22146

In article <31F355E6.C1D@info.fundp.ac.be> Michael Jampel <mja@info.fundp.ac.be> writes:

   In general, LISP is deterministic, as are C, C++, Basic.
   Prolog is no-deterministic, i.e. one program can have more
   than one correct answer. So if you want to learn something
   as different as possible from C etc, I suggest Prolog.

See Screamer, available from my home page, for an extension of CommonLisp that
supports nondetereminism. See QobiScheme, also available from my home page,
for an extension of Scheme that supports nondeterminism.

   One more personal prejudice: Prolog is the basis of a new
   class of languages to do with "Constraint Logic Programming"
   which is wonderful,  and will be increasingly important in 
   the future. So you should move to CLP via Prolog. (See
   comp.constraints for more.)

Both Screamer and QobiScheme support constraint-based programming in a Scheme
or CommonLisp framework. QobiScheme supports finite domain constraints via
generalized forward checking and arc consistency as well as unification.
Screamer supports all of these as well as arbitrary numeric constraints over
integers/rationals/floats using bounds propagation coupled with divide and
conquer interval splitting. Nothing about constraint-based programming is
particularly better suited to Prolog, Scheme, Lisp, or any other language.
The generic lifting transformation to derive CLP languages from Prolog could
be applied to almost any language.
-- 

    Jeff (home page http://tochna.technion.ac.il/~qobi)
