[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