Haskell and mathematics
Haskell is growing in popularity among mathematicians. As one blogger put it:
- "after my involving myself in the subject, one thing that stands out is the relatively low distance between thought expressed in my ordinary day-to-day mathematical discourse, and thought expressed in Haskell code."
- "How can Haskell not be the programming language that all mathematicians should learn?"
To paraphrase Hilbert ("Physics is too complicated for Physicists"), the relative obscurity of Haskell (a language with a strict notion of functions, higher-order-functions, and types) amongst mathematicians may be that:
- "Haskell is too mathematical for many mathematicians."
This page collects resources for using Haskell to do mathematics.
A growing collection of Haskell math libraries.
3 Theorem proving
There has been a long tradition of mechanised reasoning in and about Haskell.
4 Mathematics from a Haskell perspective
Articles on computational and category theoretic branches of mathematics, and their role as a foundation for programming and Haskell itself.
5 Tutorials and blogs on Haskell for mathematicians
- Why isn't ListT list a monad?
- Reverse Engineering Machines with the Yoneda Lemma
- Variable substitution gives a...
- From Löb's Theorem to Spreadsheet Evaluation
- Games, Strategies and the Self-Composition of the List Monad.
- Practical Synthetic Differential Geometry
- More Low Cost Geometric Algebra
- Learn Maths with Haskell
- Algebraic Topology in Haskell
- Infinitesimal Types
- Geometric Algebra for Free!
- Eleven Reasons to use Haskell as a Mathematician
- Laws of Form: An Opinion
- A-algebras and group cohomology
- Prototyping thought
- Computational Group Theory in Haskell
- Carry bits and group cohomology
- Why Haskell?
- Programs are Proofs: Models and Types in Lambda Calculus
- Polynomials as numbers
- Non-standard analysis, automatic differentiation, Haskell
- Haskell for Maths: commutative algebra, combinatorics, number theory, and group theory
- Two-dimensional spatial hashing with space-filling curves