[Haskell-cafe] Re: Tutorial on Haskell

Pete Kazmier pete-expires-20070615 at kazmier.com
Mon Apr 16 13:26:22 EDT 2007


Simon Peyton-Jones <simonpj at microsoft.com> writes:

> My guess is that they'll be Linux/Perl/Ruby types, and they'll be
> practitioners rather than pointy-headed academics.

>         Suggest concrete examples of programs that are
>                 * small
>                 * useful
>                 * demonstrate Haskell's power
>                 * preferably something that might be a bit
>                         tricky in another language

> But there must be lots of others.  

As one of those python/ruby types trying to learn Haskell for the past
year, here are my suggestions for small examples:

- Tom Moertel's Haskell Port Scanner
  Why? Demonstrates concurrent haskell in a small amount of lines
  http://blog.moertel.com/articles/2004/03/13/concurrent-port-scanner-in-haskell

- A web-server example of some sort that interfaces with a database
  and uses some interesting HTML combinator library.

- Building a simple unit testing framework is always a good example
  (even though they already exist), and then introducing quickcheck
  perhaps.

- A program to concurrently verify the links on an HTML page
  recursively.  I'm sure there are lots of interesting idioms and
  techniques that could be used while keeping the code small and
  elegant.

- Perhaps a Haskell version of Norvig's 20-line Python Spell Checker:
  Why? Maybe a Haskell version could be shorter and more elegant?
  http://norvig.com/spell-correct.html

- Tom Moertel's Directory Tree Printing in Haskell:
  Why? Demonstrates all sorts of introductory techniques
  http://blog.moertel.com/articles/2007/03/28/directory-tree-printing-in-haskell-part-three-lazy-i-o


Some thoughts on other topics suggested by others:

- Parsec is not that interesting for those coming from perl, ruby, or
  python as they rely on regular expressions for everything and just
  expect that they are part of the language.  The thought of writing
  one's own parser is not as "cool" as most Haskellers believe it is,
  regardless of how interesting the parsec library is.

- STM may be too complex of a subject for an intro to Haskell
  tutorial.  There are just too many concepts in there that may
  overwhelm some beginners.

- Don's post on shell scripting was very interesting, but I'm still
  having a hard time understanding some parts of it, the error
  handling part, and I've been playing with Haskell on and off for the
  past year (I'm also a slow learner and not an academic).

- Don's post on simple UNIX utilities was also quite nice. I believe
  he also wrote a simple IRC bot example that would prove
  interesting, can't seem to find the link at the moment though.

Just my thoughts as a newbie desiring a book on how to use Haskell in
a practical manner (such as Practical Common Lisp book).

-Pete



More information about the Haskell-Cafe mailing list