Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!rochester!ur-tut!sunybcs!boulder!hao!ames!ucbcad!ucbvax!HT.AI.MIT.EDU!hamscher From: hamscher@HT.AI.MIT.EDU.UUCP Newsgroups: comp.ai.digest Subject: Suggestions for Course Message-ID: <8710271428.AA07771@ht.ai.mit.edu> Date: Tue, 27-Oct-87 09:28:32 EST Article-I.D.: ht.8710271428.AA07771 Posted: Tue Oct 27 09:28:32 1987 Date-Received: Sat, 31-Oct-87 01:14:50 EST Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet Lines: 20 Approved: ailist@kl.sri.com It seems to me that your list of reasons for using Lisp or Prolog in an AI class didn't include the single substantive reason for using Lisp, which is that that its use of just a couple of primitive data types to represent both data and code make it particularly easy to writing specialized languages and interpreters or compilers for them. Especially pattern-directed invocation languages. The reason for using Prolog is that it embeds one particular pattern-directed invocation paradigm for writing AI programs and makes that extremely fast, although clearly your experience with DCG notation suggests that it too has the unity of code and data that is helpful in constructing alternative interpreters. The reason it is important to be able to build specialized languages and interpreters is that those are what makes it possible to build specialized representations appropriate for different problems. And the engineering of appropriate representations is fundamental to AI. (which is not to claim that we know how to do it very well yet :-)