Difference between revisions of "Learning Haskell"

From HaskellWiki
Jump to navigation Jump to search
m (minor tweak)
(turned the material table into normal text consisting of several subsections)
Line 56: Line 56:
 
== Material ==
 
== Material ==
   
The table below lists references to certain introductory material. If you want to dig deeper, see [[Books and tutorials]].
+
Below there are links to certain introductory material. If you want to dig deeper, see [[Books and tutorials]].
   
 
=== Tutorials ===
{| border=1 cellspacing=0 cellpadding=5 width=100% valign=top style="text-align:left" |
 
! Tutorials
 
! Textbooks
 
 
|- style="vertical-align:top"
 
 
|
 
   
 
* [http://undergraduate.csse.uwa.edu.au/units/230.301/lectureNotes/tourofprelude.html A Tour of the Haskell Prelude (i.e. predefined functions)]
 
* [http://undergraduate.csse.uwa.edu.au/units/230.301/lectureNotes/tourofprelude.html A Tour of the Haskell Prelude (i.e. predefined functions)]
Line 77: Line 71:
 
* [http://research.microsoft.com/Users/simonpj/papers/marktoberdorf/ Tackling the Awkward Squad] (on I/O, interfacing to C, concurrency and exceptions)
 
* [http://research.microsoft.com/Users/simonpj/papers/marktoberdorf/ Tackling the Awkward Squad] (on I/O, interfacing to C, concurrency and exceptions)
   
 
=== Textbooks ===
|
 
   
 
* [http://www.haskell.org/soe The Haskell School of Expression]
 
* [http://www.haskell.org/soe The Haskell School of Expression]
Line 86: Line 80:
 
* [http://homepages.cwi.nl/~jve/HR/ The Haskell Road to Logic, Maths, and Programming]
 
* [http://homepages.cwi.nl/~jve/HR/ The Haskell Road to Logic, Maths, and Programming]
   
 
=== Reference ===
|-
 
 
! Reference
 
! Course Material
 
 
|- style="vertical-align:top"
 
 
|
 
   
 
* [http://www.haskell.org/hawiki/HaskellNewbie Haskell Newbie]
 
* [http://www.haskell.org/hawiki/HaskellNewbie Haskell Newbie]
Line 105: Line 92:
 
* [http://www.haskell.org/hawiki Questions and Answers (old Haskell wiki)]
 
* [http://www.haskell.org/hawiki Questions and Answers (old Haskell wiki)]
   
  +
=== Course material ===
|
 
   
 
* [http://www.cs.chalmers.se/Cs/Grundutb/Kurser/d1pt/d1pta/external.html Programming in Haskell, Chalmers]
 
* [http://www.cs.chalmers.se/Cs/Grundutb/Kurser/d1pt/d1pta/external.html Programming in Haskell, Chalmers]
Line 111: Line 98:
 
* [http://www.cs.uu.nl/docs/vakken/lfp/ Functional programming]: course notes ([http://www.cs.uu.nl/~jeroen/courses/fp-eng.pdf English], [http://www.cs.uu.nl/~jeroen/courses/fp-nl.pdf Dutch], [http://www.cs.uu.nl/~jeroen/courses/fp-sp.pdf Spanish]), slides in Dutch
 
* [http://www.cs.uu.nl/docs/vakken/lfp/ Functional programming]: course notes ([http://www.cs.uu.nl/~jeroen/courses/fp-eng.pdf English], [http://www.cs.uu.nl/~jeroen/courses/fp-nl.pdf Dutch], [http://www.cs.uu.nl/~jeroen/courses/fp-sp.pdf Spanish]), slides in Dutch
 
* [http://www.cse.unsw.edu.au/~cs1011/ CS1011]: Tutorials, lab exercises and solutions
 
* [http://www.cse.unsw.edu.au/~cs1011/ CS1011]: Tutorials, lab exercises and solutions
 
|}
 

Revision as of 22:55, 21 August 2006


LearningHaskell.gif

This portal points to places where you can go if you want to learn Haskell.

The Introduction to Haskell on the Haskell website tells you what Haskell gives you: substantially increased programmer productivity, shorter, clearer, and more maintainable code, fewer errors, higher reliability, a smaller “semantic gap” between the programmer and the language, shorter lead times. There is an old—but still relevant—paper about Why Functional Programming Matters by John Hughes. More recently, Sebastian Sylvan wrote an article about Why Haskell Matters.

There is also a table comparing Haskell to other functional languages. Many questions about functional programming are answered by the comp.lang.functional FAQ.

Implementations

Here is an overview about Haskell implementations:

Messages Size Tools Remarks
Hugs +/- ++ - Fast compilation; used a lot for learning Haskell and rapid code development. See also WinHugs.
GHC + - ++ Many language extensions; generated code is very fast
NHC ? + ++ Profiling, debugging, tracing
Yhc ? + ? Compiles to bytecodes. Runtime easily portable. Still under heavy development.
Helium ++ ++ - No type classes (yet!) and thus incompatible with most material on this site. Made for teaching/learning.

Material

Below there are links to certain introductory material. If you want to dig deeper, see Books and tutorials.

Tutorials

Textbooks

Reference

Course material