<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
<body bgcolor="#ffffff" text="#000000">
<pre wrap="">I agree with Andrew Wagner re: Haskell and AI.
There are some relevant resources on Haskell, Maths, and Logic:
<b class="sans">The Haskell Road To Logic, Maths And Programming (Paperback) </b>
href="http://www.amazon.com/exec/obidos/search-handle-url/103-5196905-1677457?%5Fencoding=UTF8&search-type=ss&index=books&field-author=Kees%20Doets">Kees Doets</a> (Author), <a
href="http://www.amazon.com/exec/obidos/search-handle-url/103-5196905-1677457?%5Fencoding=UTF8&search-type=ss&index=books&field-author=Jan%20van%20Eijck">Jan van Eijck</a> (Author)
<a class="moz-txt-link-freetext" href="http://www.amazon.com/Haskell-Road-Logic-Maths-Programming/dp/0954300696/ref=sr_1_1/103-5196905-1677457?ie=UTF8&s=books&qid=1174327994&sr=1-1">http://www.amazon.com/Haskell-Road-Logic-Maths-Programming/dp/0954300696/ref=sr_1_1/103-5196905-1677457?ie=UTF8&s=books&qid=1174327994&sr=1-1</a>
van Eijck has another book on Computational Semantics. Elsewhere, there is work on learning algorithms in Haskell.
Broadly, we might start by gathering known resources, projects, and people. We could consider one of the standard AI books as a guide for chapters, sections, and problems to fill in with Haskell approaches.
I'd be very interested to contribute to this.
Date: Mon, 19 Mar 2007 12:51:19 -0400
From: "Andrew Wagner" <a class="moz-txt-link-rfc2396E"
Subject: Re: [Haskell-cafe] Haskell Chess
To: <a class="moz-txt-link-abbreviated"
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Here's my take on this: I've thought for a while now that Haskell
needs a general toolkit for AI. After all, functional programming has
long been recognized for being good at AI, yet you rarely hear about
it being done in Haskell. Anyway, my suggestion would be to
concentrate on methods of AI. For example, if we implement alpha-beta
polymorphically enough, it should be trivial to use it for any game
that it makes sense to use it on. This kind of thing is what I was
thinking of when I talked about some "fundamental design" ideas I had.
Things like writing a Board type-class, so that you can implement any
board representation you want to for chess. Or writing alpha-beta in
terms of positions and moves, regardless of what kind of game you're
talking about (I also think you simply must use unfoldTree, as this is
a beautiful instance of it). Things like learning, and other general
strategies, should be developed independently of any particular game,