Haskell is a lazy functional programming language. It has a very strong type system, which clever programmers use to enforce a wide range of useful constraints on their programs at compile time. It has a garbage collector like most modern languages. Implementations are freely available on many platforms, and for a language you've never heard of it has a surprisingly large number of useful libraries. Haskell takes some getting used to, but programming in Haskell is an enormously satisfying experience once you understand it.
A Haskell CSV parser
Just added an example of Haskell in action - a comma separated value (CSV) parser. Reads in a file and produces a list of lists of strings. Supports embedded newlines, commas and quotes. Short and sweet. Here's the code.
Skinning Haskell
One of the nicest things about Haskell is how much you can customize it to suit your tastes. For instance, maybe you've been using Python for a while now and you've admired its uniform notation for accessing elements of all manners of sequences and mappings. When you switch to Java, it's likely to drive you crazy that you can't foo[0] an ArrayList, only a plain old array. You think "Gee, foo.get(i) and foo[i] are basically the same concept, it's a shame I have to write it two different ways". With Haskell, you can have all the type safety (and much more) that Java offers, with the uniform notation that Python offers. More...
