[PDF][PDF] A gentle introduction to Haskell

P Hudak, JH Fasel - ACM Sigplan Notices, 1992 - dl.acm.org
P Hudak, JH Fasel
ACM Sigplan Notices, 1992dl.acm.org
Our purpose in writing this tutorial is not to teach programming, nor even to teach functional
programming. Rather, it is intended to serve as a supplement to the Haskell Report [3],
which is otherwise a rather dense technical exposition. Our goal is to provide a gentle
introduction to Haskell for someone who has experience with at least one other language,
preferably a functional language (even if only an" almost-functional" language such as ML or
Scheme). If the reader wishes to learn more about the functional programming style, we …
Our purpose in writing this tutorial is not to teach programming, nor even to teach functional programming. Rather, it is intended to serve as a supplement to the Haskell Report [3], which is otherwise a rather dense technical exposition. Our goal is to provide a gentle introduction to Haskell for someone who has experience with at least one other language, preferably a functional language (even if only an" almost-functional" language such as ML or Scheme). If the reader wishes to learn more about the functional programming style, we highly recommend Bird and Wadler's text Introduction to Functional Programming [1], which uses a language sufficiently similar to Haskell to make translation between the two quite easy. For a useful survey of functional programming languages and techniques, including some of the language design principals used in Haskell, see [2].
Our general strategy for introducing language features is this: motivate the idea, define some terms, give some examples, and then point to the Report for details. We suggest, however, that the reader completely ignore the details until this document has been completely read. On the other hand, Haskell's Standard Prelude (in Appendix A of the Report) contains lots of useful examples of Haskell code; we encourage a thorough reading once this tutorial is completed. This will not only give the reader a feel for what reed Haskell code looks like, but will also familiarize her with Haskell's standard set of predefined functions and types.
ACM Digital Library