Hacker News new | comments | show | ask | jobs | submit login

This is a goldmine. Thanks for posting this. Interesting to see how much Prolog and Lisp texts dominate the programming section :)

Wherever "The Art of Prolog" is recommended, I'm accustomed to seeing also "The Craft of Prolog" by Richard A. O'Keefe, but here it's missing.

Only the pure of heart Prolog programmer can make his way through that book!8-))


Craft is very good, though I'd recommend going through Art first.

Also, Craft is organized a bit strangely -- IIRC, it was originally written as a response to a specific Prolog implementation's documentation.

I've found Bratko's book to be an amazing tour de force.


I've heard good stuff about that one, too! I'm waiting for the new edition (coming in June, supposedly), I've got plenty to read til then.

I also really enjoyed _Essentials of Metaheuristics_. I bought a print copy, but thanks for putting a free PDF out there.


I came in here to say the same thing. I've been learning Lisp and some other functional languages but I'm still not sure why Lisp and Prolog make such good AI languages.

Isn't it somewhat historic? Lisp was invented by McCarthy, who also coined the term AI. It was perhaps the language AI researchers were acquainted by was Lisp, and it remained a tradition. (There are technical reasons too, but I'm not that qualified to list them. Here are some reasons: http://stackoverflow.com/questions/130475/why-is-lisp-used-f... )

Partially historic, yes. It was faster/easier for students to write their AI programs in lisp than in any other languages for a long time. Between functional programming, an REPL, and macros, you could find yourself doing a lot with a little.

Prolog is also partially historic, but it has the added benefit of being logic-based, which is the direction that AI focused on for several years. Around that time, it was believed that AI could be done with pure symbolic logic, and that's exactly how programming in Prolog works. This approach eventually turned out not to work very well, but Prolog is still used in some places because it's a very easy language for interacting with graphs and decision trees (which are big things in AI).

Lisp and Prolog are still huge in AI, at least in academia, or at least at my university. For instance: ICARUS [1], CCalc [2], and answer set programming solvers [3], all of which are part of active and recent research, use Lisp or Prolog.

Prolog was and still is used precisely because it is so (relatively) easy to specify some facts and behaviors as Horn clauses [4], which is important, because it is one of the few places I ever hear the phrase "solvable in polynomial time" in KRR.

[1] http://circas.asu.edu/cogsys/papers/manual.pdf

[2] http://www.cs.utexas.edu/users/tag/cc/

[3] http://potassco.sourceforge.net/

[4] http://en.wikipedia.org/wiki/Horn_clause

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact