Functional programming in Haskell
Fritz Ruehr
Abstract
Fritz Ruehr
Abstract
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 polymorphism and pattern-matching over algebraic data types. Popular Haskell implementations offer an interactive evaluation environment which provides 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 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 traditional applications 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.
OpenAlex reports 1 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
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 polymorphism and pattern-matching over algebraic data types. Popular Haskell implementations offer an interactive evaluation environment which provides 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 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 traditional applications 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.
Key concepts: Haskell, Computer science, Programming language, Functional programming