#use wml::tmpl::main title="Haskell -- A purely functional programming language" PAGE=programming SUBPAGE=haskell
<h1>What is Haskell?</h1>
<p>Haskell is a modern, standard, non-strict, purely-functional
programming language. It provides <foldoc polymorphic> typing,
<foldoc lazy evaluation> and
<A href="http://www.csc.liv.ac.uk/~grant/Teaching/COMP205/fHO.html">
higher-order functions</a>. It also has an innovative type system which supports a
systematic form of <A href="http://homepages.feis.herts.ac.uk/~msc_fl/fl-node60.html">overloading</A> and a module system.</p>
<p>It is specifically designed to handle a wide range of applications,
from numerical through to symbolic. To this end, Haskell has an
expressive syntax, and a rich variety of built-in data types,
including arbitrary-precision integers and rationals, as well as the
more conventional integer, floating-point and boolean types.</p>
<p>There are several <A href="http://www.haskell.org/implementations.html">implementations</a> of Haskell available of which all are free.</p>
<h2>Stunden -- A Haskell program</h2>
<p>I've only written one Haskell program so far, which was mostly an experiment in Haskell and Literate Programming.
Literate programming is a style of programming where you try to write more documentation than code from the beginning on.  Haskell has a special input file format for that, .lhs files.</p>
<p>You can view Stunden in <a href="Stunden.pdf">PDF</A> and <a href="Stunden.ps">PostScript</a>, or you can download the <a href="Stunden.tar.gz">complete source code</a> as .tar.gz file.</p>

<H2>Web Resources</H2>
<UL>
<LI><A href="http://haskell.org/hawiki/">The Haskell Wiki</A></li>
<LI><A href="http://www.isi.edu/~hdaume/htut/">Yet Another Haskell Tutorial</A></li>
<LI><a href="http://www.engr.mun.ca/~theo/Misc/haskell_and_monads.htm">Monads for the Working Haskell Programmer</a><br>-- a short tutorial.</li>
<LI><a href="http://www.cs.uu.nl/~daan/papers/parsec.html">Parsec, a fast monadic combinator parser</a></li>
<LI><A href="http://research.microsoft.com/Users/simonpj/">Simon Peyton Jones's Home Page</a> is full of interesting material.  He is a major player in the Haskell community.</li>
<LI>Graham Hutton's <A href="http://www.cs.nott.ac.uk/~gmh/fold.ps">
 tutorial on the universality and expressiveness of fold</a> <A href="fold.ps">[local mirror]</a></li>
<LI>Frank Atanassow's <a href="http://www.cs.uu.nl/people/franka/ref">Programming language theory texts online</a></li>
</UL>
<H2>Intersting Projects using Haskell</H2>
<UL>
<LI><A href="http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/">Hetris</A> is a Tetris implementation written in Haskell.
</UL>
