Вы находитесь на странице: 1из 2



Fritz Ruehr
Willamette University
Salem, OR 97301
(503) 370-6165

This tutorial will focus on functional programming in Haskell, a very high-level language
which provides a unique "bird's-eye view" on many programming problems. Like other modern
functional languages, Haskell derives its power from higher-order functions, parametric
polymorphismand pattern-matching over algebraic data types. Popular Haskell implementations
offer an interactive evaluationenvironment whichprovides immediate feedback on programming
ideas, thus encouraging experimentation. But Haskell also offers the security of strong, static
typing and the flexibility of polymorphism, a combination which helps forestall programming
errors without a heavy syntactic overhead. In fact, Haskell's sparse syntax has been specifically
designed to be reminiscent of mathematical notation and thus will be familiar to most people.
Finally, Haskell features a "pure" mathematical semantics which supports equational reasoning,
thus simplifying and streamlining the process of program development.
Haskell has considerable local relevance in the Pacific Northwest due to the number of
groups situated here which are involved in its definition, use and dissemination. These include
the Pacific Software Research Center at the Oregon Graduate Institute (doing research on
language implementation and semantics); Intel Corporation (using Haskell and related systems
for hardware modeling and verification); the Galois Connections company (using Haskell for

Copyright © 2001 by the Consortium for Computing in Small Colleges. Permission
to copy without fee all or part of this material is granted provided that the copies are not made
or distributed for direct commercial advantage, the CCSC copyright notice and the title of the
publication and its date appear, and notice is given that copying is by permission of the
Consortium for Computing in Small Colleges. To copy otherwise, or to republish, requires a
fee and/or specific permission.

JCSC 17, 2 (December 2001)

industrial applications, including cryptography); and Microsoft Research (using Haskell for
graphics programming and as a source for network implementations under .NET).
A quick introduction to syntax and language features will be provided through a series of
short, interactive examples. This will be followed by an overview of a few medium-sized
programs illustrating traditionalapplications in data structures, language implementation, graphics
and web programming. A number of larger Haskell projects currently undergoing development
in the region will also be showcased. Finally, the value of Haskell for Computer Science
education will be discussed.