[Haskell-cafe] I am new to haskell

Benjamin L. Russell dekudekuplex at yahoo.com
Fri May 9 07:59:31 EDT 2008




--- On Fri, 5/9/08, Bulat Ziganshin <bulat.ziganshin at gmail.com> wrote:

> Hello Giorgio,
> 
> Friday, May 9, 2008, 10:40:47 AM, you wrote:
> 
> > be the next one. Should I wait for Real world Haskell
> or do you think
> > that the books you listed offer something
> new/different/more advanced
> > than Programming in Haskell?
> 
> i recommend you to read papers from the
> http://haskell.org/haskellwiki/Learning_Haskell
> page, in particular those in Advanced tutorials, Monads,
> Type classes,
> Popular libraries sections

That is one idea.  Also, since The Haskell School of Expression (http://www.haskell.org/soe/), by Paul Hudak, is sometimes regarded as easier to read as a second book on Haskell, you could read that, too.

A more interesting suggestion, depending on your interests, is to find a specific interesting paper and do follow-up reading to understand that paper's topic better.

For example, a few months ago, I was reading a paper, "A History of Haskell: Being Lazy With Class" (http://research.microsoft.com/~simonpj/papers/history-of-haskell/history.pdf), by Paul Hudak, John Hughes, Simon Peyton Jones, and Philip Wadler.  While reading this paper, I encountered multiple references to a "Hindley-Milner type system," which apparently formed the basis for Haskell's type system, and wanted to learn more about this.  A reference in the bibliography of the above paper pointed to "A theory of type polymorphism in programming," by Robert Milner, which unfortunately I was unable to find online.

Further investigation led to a doctoral dissertation, "A General Framework for Hindley-Milner Type Systems with Constraints" (http://citeseer.ist.psu.edu/sulzmann00general.html), by  Martin Sulzmann.  Being new to type theory, I had some difficulty in understanding this paper, so I sent a question by e-mail to the author.  He wrote back a rather terse reply suggesting that I go read the book "Types and Programming Languages" (http://www.cis.upenn.edu/~bcpierce/tapl/) by Benjamin Pierce, adding that then I might better be able to understand his paper.

Fortunately, the Wikipedia entry for "Type inference" pointed to Chapter 22 of that huge book.  This dramatically reduced the amount of relevant reading.  However, the book is very heavy, and was unavailable at the library when I wanted to borrow it.  I plan to purchase that book in the near future.

Some other suggestions for relevant papers not mentioned in "Learning Haskell - HaskellWiki" that I have found interesting are the following:

* A critique of Abelson and Sussman or why calculating is better than scheming, by Philip Wadler
  http://www.cs.kent.ac.uk/people/staff/dat/miranda/wadler87.pdf
  This paper describes advantages of KRC, a predecessor to Miranda, itself a predecessor to Haskell, over LISP.

* Wearing the hair shirt: a retrospective on Haskell (Microsoft PowerPoint presentation), by Simon Peyton Jones
  This paper describes the evolution of Haskell, and describes some advantages of Haskell over other programming languages.
  http://research.microsoft.com/~simonpj/papers/haskell-retrospective/HaskellRetrospective-2.pdf

* Archived e-mail message by Roger Hindley explaining the history of type inference (c/o http://en.wikipedia.org/wiki/Type_inference#Hindley.E2.80.93Milner_type_inference_algorithm)
  http://www.cis.upenn.edu/~bcpierce/types/archives/1988/msg00042.html
  This short (one-page) e-mail message describes the history of the Hindley-Milner typing algorithm.

Also, you may wish to attend an academic conference related to Haskell.  For example, recently, I attended "Continuation Fest 2008" (http://logic.cs.tsukuba.ac.jp/~kam/Continuation2008/) on continuations.  There, I met an Assistant Professor from Rutgers, The State University of New Jersey.  During the conference dinner afterwards, I was able to ask him to help me figure out how to write Towers of Hanoi in Haskell.  In addition, I met some local researchers who gave me information on attending a monthly Haskell study meeting.

Benjamin L. Russell


More information about the Haskell-Cafe mailing list