I don't see where they specified a programming language but
I know that Python is making huge inroads. Python is supposed
to be "easier to understand" so I can see why it might be a
factor in language choice.

Another likely factor is that Google (where Norvig works) supports
Python but not Lisp. I find the choice of Python over Lisp 
surprising considering that Lisp compiles to machine code and 
Python does not. Apparently a free, global, factor-of-10 speed
improvement isn't a worthy engineering goal :-)

It is trivial to make Lisp look like Python,
just put each paren on its own line and move them hard right.
Add a few macros (e.g. for) and you could probably parse it.

Clojure might have been a nice fit since it lives both in the
Lisp world and the Java world. Java is one of the approved Google
languages and Clojure is homoiconic so self modification is easy.
But, hey, its an AI class so we really don't want to work outside
the comfort zone :-)

If you look at "traditional AI" such as games I think you'll
find that minimax algorithms are going to really strain to work
in games like Go without tail recursion or call/cc. Or if you 
use Fourier Transforms to spread the learning from the 9x9
training board to the 19x19 board I think you'll miss the 
elegance of Lisp for programming the network structures. Fourier
learning doesn't seem to be widely known so I doubt it will get
mentioned.

AI without Lisp is possible but not pretty.

But I'm signed up anyway and I'm willing to be convinced otherwise.
I have worked in Python commercially and it's a reasonable language.
They are hoping for 10,000 students. It would have been great to 
have Clojure taught to 10k students in one class but I'm sure that
signing up for that language war would be a distraction. Maybe next
year.

Tim Daly


On Mon, 2011-08-08 at 13:22 -0700, Mark Engelberg wrote:
> BTW, Norvig's older AI book uses LISP.   According to his website, he
> switched to Python because students complained that the LISP code did
> not look enough like the pseudocode outline of how a given algorithm
> works, and had trouble making the connection between the two.
> 


-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to