# Haskell in the teaching of Maths

**Jerzy Karczmarczuk
**
karczma@info.unicaen.fr

*Thu, 22 Nov 2001 11:09:20 +0100*

John Hughes:
>*
*>* Look at Rex Page's Beseme project
*>*
*>* http://www.cs.ou.edu/research/beseme.shtml
*>*
*>* (which uses the Hall and O'Donnell book to do some interesting educational
*>* research).
*
Just two useless words, on that project and *many* others.
Rex Page focuses on *discrete math*. I believe that most of other
people interested in dancing on a bridge between math and functional
programming are interested in discrete math. structures.
Not too much about analysis, topological problems... About differential
equations. About the manipulation of "continuous objects": functions ::
Real -> Real and generalizations thereof.
Convergence of numerical algorithms. Algorithms for the asymptotic behaviour
of some functions (and concrete asymptotic expansions: see the book by Knuth/
Graham/Patashnik...) etc. etc.
Well, this is my personal field of interest, so I cannot be objective, but
I assure you that all enormous niche of mathematical programming is still
open. Maths, especially applied maths are often taught with the aid of
computer algebra programs. Teachers, students, implementors, use Maple or
Mathematica, or you name it, in order to transform *formulae*, to crunch, munch,
and digest the external representation of mathematical entities not because
this is something very profound, but because "standard" programming languages
do not offer any reasonable facilities to manipulate objects with some
mathematical contents. Named symbols, the "indeterminates" replace those
entities: algebra generators, differential forms, fields, operators, etc.
Good, polymorphic functional languages offer those missing tools. On this very
mailing list we had at least 100 postings about math structures and their
implementation in Haskell. Everybody agrees that the situation is far from
ideal. Classes are not categories. Types are not domains. We don't know how
to specify operationally such properties as commutativity for arbitrary
binary functions, etc. We need an "object-oriented" type system adapted to
math hierarchies, and this is far from trivial, people from Axiom, Magma and
MuPAD zones worked for years on that.
Jerzy Karczmarczuk
Caen, France