Haskell(ID:1555/has002)


(named for the logician Haskell B. Curry). April 1990.
Designed by a committee from the functional programming community. A lazy purely functional language largely derived from Miranda. Static polymorphic typing, higher-order functions, user-defined algebraic data types, and pattern-matching list comprehensions. Innovations include a class system, operator overloading, functional I/O system, functional arrays, and separate compilation.

purely functional programming language. Computation proceeds by replacing expressions with their values. While all languages incorporate functions to some degree, HASKELL programs are composed solely of functions. It's based on Lambda calculus, hence the L used as a logo. The language is named for logician Haskell B. Curry, whose work provided much of the logical basis for the language.  Yale has been an integral part of the development and implementation of the HASKELL language since it's inception, Yale has helped write the HASKELL Report, Wrote a tutorial, and most recently Paul Hudak has published a textbook on using HASKELL, "The Haskell School of Expression".
Today, the focus of the Yale group is on putting HASKELL to work in the real world by : using HASKELL to construct a variety of DSL's (Domain-Specific Embedded Languages). The challenges include
1) the semantic underpinnings of DSL's,
2) building blocks for DSL construction,
3) Domain-specific analysis and transformation,
4)compiling DSL's,
5) deploying DSL technology.  

Places
Structures:
Related languages
Miranda => Haskell   Based on
T => Haskell   Co-development
Haskell => Brisk   Augmentation of
Haskell => Cayenne   Enhancement of
Haskell => CPL   embedded in
Haskell => Eden   Extension of
Haskell => Escher   Incorporated some features of
Haskell => Generic Haskell   Extension of
Haskell => Gofer   Influence
Haskell => GUM   Implementation
Haskell => Haskell B   Implementation
Haskell => Haskell#   Extension of
Haskell => HUGS   Implementation
Haskell => O'Haskell   Augmentation of
Haskell => Yale Haskell   Implementation

Samples:
References:
  • Hudak, Paul & P. Wadler eds, "Report on the Programming Language Haskell Version 1.1", CS Depts, U Glasgow and Yale U. (Aug 1991). view details
  • Emery Berger. FP + OOP = Haskell. Technical report, Department of Computer Science, The University of Texas at Austin, Texas, AU, USA, March 1992. view details
  • Fasel, Joseph H. ; Paul Hudak, Simon L. Peyton Jones, Philip Wadler: Editorial to Special Issue on the Functional Programming Language Haskell view details
          in SIGPLAN Notices 27(05) May 1992 Special Issue on the Functional Programming Language Haskell view details
  • Hudak, Paul et al "Report on the Programming Language Haskell, A Non-strict, Purely Functional Language" view details
          in SIGPLAN Notices 27(05) May 1992 Special Issue on the Functional Programming Language Haskell view details
  • Hudak, Paul; Fasel, Joseph H. "A Gentle Introduction to Haskell" view details
          in SIGPLAN Notices 27(05) May 1992 Special Issue on the Functional Programming Language Haskell view details
  • J. Launchbury and S.L. Peyton Jones, "State in Haskell" pp293-341 view details Abstract: Some algorithms make critical internal use of updatable state, even though their external specification is purely functional. Based on earlier work on monads, we present a way of securely encapsulating stateful computations that manipulate multiple, named, mutable objects, in the context of a nonstrict, purely functional language. The security of the encapsulation is assured by the type system, using parametricity. The same framework is also used to handle input/output operations (state changes on the external world) and calls to C. ps
          in LISP and Symbolic Computation, 8(4) 1995 view details
  • Skillicorn, David B. and Talia, Domenico "Models and languages for parallel computation" pp123-169 view details
          in [ACM] ACM Computing Surveys (CSUR) 30(2) June 1998 view details
  • Thompson, Simon "Haskell the Craft of Functional Programming" Addison Wesley Longman 1999 view details Abstract: Thompson (U. of Kent) introduces readers to Haskell 98, the primary language of functional programming. He emphasizes the process of crafting programs and provides numerous examples and case studies, as well as advice on program design, testing, and problem solving, and gives detailed coverage of the Hugs interpreter. The book pays particular attention to software engineering principles, such as building reusable libraries of software components, and supports the toolkit approach encouraging the reuse of built-in functions and types.


          in [ACM] ACM Computing Surveys (CSUR) 30(2) June 1998 view details
  • Hans-Wolfgang Loidl, Ulríke Klusik, Kevin Hammond, Rita Loogen, Phil Trinder "GpH and Eden: Comparing Two Parallel Functional Languages on a Beowulf Cluster view details
          in 2nd Scottish Functional Programming Workshop, St. Andrews 2000, Intellect, 2001 view details
    Resources