The Mathematical Style of Haskell

 Willamette Mathematics Colloquium • Fall 2002

The Mathematical Style of Haskell
 Programming paradigms functional programming is just one of several major programming paradigms

```

```

 Willamette Mathematics Colloquium • Fall 2002

The Mathematical Style of Haskell
 Programming paradigms History of functional programming functional proramming properly begins with LISP and APL in the 1950's and 1960's (but it got a big boost in the late 70's with Backus' Turing Award)

```

```

 Willamette Mathematics Colloquium • Fall 2002

The Mathematical Style of Haskell
 Programming paradigms History of functional programming History of Haskell Haskell was a community effort (open source) in reaction to proprietary Miranda ("Miranda" is a trademark of Research Software, Ltd.")

```

```

 Willamette Mathematics Colloquium • Fall 2002

The Mathematical Style of Haskell
 Programming paradigms History of functional programming History of Haskell Haskell fits well with mathematical style and usage many features collaborate to support this fit based on mathematical concepts (functions, algebra) • higher-order functions, algebra = structure + operations concise, high-level descriptions • whole-structure manipulation referential transparency (allows equational reasoning) • no aliasing, no time-bound effects well-behaved numeric types • big integers and exact rationals

```

```

 Willamette Mathematics Colloquium • Fall 2002

The Mathematical Style of Haskell
 Programming paradigms History of functional programming History of Haskell Haskell fits well with mathematical style and usage an uncluttered, math-compatible syntax infix operators, ZF-expressions, guards, let declarations ```2+3*4 [ x^2 | x <- [1..10] ] abs x | (x < 0 ) = -x | otherwise = x let x = 3*y+7 in x^2-k```

```

```

 Willamette Mathematics Colloquium • Fall 2002

The Mathematical Style of Haskell
 Programming paradigms History of functional programming History of Haskell Haskell fits well with mathematical style and usage an uncluttered, math-compatible syntax Haskell has been guided by a consistent, persistent design philosophy the community has held its ground against encroachment by "impure" features this discipline has actually led to major innovations (e.g., monads)

```

```