[Haskell-cafe] Re: How Albus Dumbledore would sell Haskell

Lennart Augustsson lennart at augustsson.net
Thu Apr 19 20:08:51 EDT 2007

A theorem prover might be a really cool example, but if there's one  
person in the audience that cares then Simon is lucky. :)  You need  
to have examples that people can recognize and see the utility of.

	-- Lennart

On Apr 19, 2007, at 20:48 , DavidA wrote:

> Simon Peyton-Jones <simonpj <at> microsoft.com> writes:
>> But, just to remind you all: I'm particularly interested in
>>   concrete examples (pref running code) of programs that are
>>        * small
>>        * useful
>>        * demonstrate Haskell's power
>>        * preferably something that might be a bit
>>                tricky in another language
> I have something that I think nearly fits the bill. Unfortunately,  
> I don't
> think it quite works because it's a bit specialised. However, I  
> think it
> suggests a possible area to look, which I'll mention at the end.
> It's a theorem prover for intuitionistic propositional logic:
> http://www.polyomino.f2s.com/david/haskell/gentzen.html
> It's much shorter in Haskell than it would be in other languages.  
> (It's even
> shorter than the ML that I based it on, because of some shortcuts I  
> can take
> using lazy evaluation.)
> Strengths of Haskell that it demonstrates are:
> * How easy it is to define datatypes (eg trees), and manipulate  
> them using
> pattern matching, with constructors, Eq, Show coming for free.
> * How lazy evaluation reduces code length by letting you write code  
> that looks
> like it would do too much, and then lazy evaluate it (in the  
> "proof" function)
> * The ability to extend the syntax with new symbolic operators
> * Use of higher order functions to simplify code (the (+++) operator)
> The problem is that I think Gentzen systems are a bit obscure. But  
> I think you
> could probably show most of the same strengths of Haskell in something
> similar: game search, eg alpha-beta algorithm. Another advantage of  
> doing game
> search would be that you'd get to show off persistent data  
> structures (so that
> when you make a move in lookahead, you don't need to make a copy of  
> the game
> state, because when you update the game state the old state still  
> persists).
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe

More information about the Haskell-Cafe mailing list