Haskell and mathematics
From HaskellWiki
(Difference between revisions)
(justify the comment) |
DonStewart (Talk | contribs) (more math blogs) |
||
Line 7: | Line 7: | ||
:"How can Haskell not be the programming language that all mathematicians should learn?" | :"How can Haskell not be the programming language that all mathematicians should learn?" | ||
− | To paraphrase Hilbert ([http://www.autoren-heute.de/wissenschaft/trans_html/Physiker/index.html "Physics is too complicated for Physicists"]), the relative | + | To paraphrase Hilbert ([http://www.autoren-heute.de/wissenschaft/trans_html/Physiker/index.html "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." | :"Haskell is too mathematical for many mathematicians." | ||
− | |||
This page collects resources for using Haskell to do mathematics. | This page collects resources for using Haskell to do mathematics. | ||
Line 18: | Line 17: | ||
:King's College Publications, London, 2004. ISBN 0-9543006-9-6 (14.00 pounds, $25.00). <blockquote> <b>Book description:</b><br> The purpose of this book is to teach logic and mathematical reasoning in practice, and to connect logical reasoning with computer programming. Throughout the text, abstract concepts are linked to concrete representations in Haskell. Everything one has to know about programming in Haskell to understand the examples in the book is explained as we go along, but we do not cover every aspect of the language. Haskell is a marvelous demonstration tool for logic and maths because its functional character allows implementations to remain very close to the concepts that get implemented, while the laziness permits smooth handling of infinite data structures. We do not assume that our readers have previous experience with either programming or construction of formal proofs. We do assume previous acquaintance with mathematical notation, at the level of secondary school mathematics. Wherever necessary, we will recall relevant facts. Everything one needs to know about mathematical reasoning or programming is explained as we go along. We do assume that our readers are able to retrieve software from the Internet and install it, and that they know how to use an editor for constructing program texts. </blockquote> | :King's College Publications, London, 2004. ISBN 0-9543006-9-6 (14.00 pounds, $25.00). <blockquote> <b>Book description:</b><br> The purpose of this book is to teach logic and mathematical reasoning in practice, and to connect logical reasoning with computer programming. Throughout the text, abstract concepts are linked to concrete representations in Haskell. Everything one has to know about programming in Haskell to understand the examples in the book is explained as we go along, but we do not cover every aspect of the language. Haskell is a marvelous demonstration tool for logic and maths because its functional character allows implementations to remain very close to the concepts that get implemented, while the laziness permits smooth handling of infinite data structures. We do not assume that our readers have previous experience with either programming or construction of formal proofs. We do assume previous acquaintance with mathematical notation, at the level of secondary school mathematics. Wherever necessary, we will recall relevant facts. Everything one needs to know about mathematical reasoning or programming is explained as we go along. We do assume that our readers are able to retrieve software from the Internet and install it, and that they know how to use an editor for constructing program texts. </blockquote> | ||
− | ;[[Image:Computational_Oriented_Matroids.jpg|Cover]] | + | ;[[Image:Computational_Oriented_Matroids.jpg|Cover]] Jrgen Bokowski: [http://www.bookzilla.de/shop/action/productDetails;jsessionid=fdc-3im7hb88d3c.www12?aUrl=90006951&artiId=4435822<em>Computational Oriented Matroids</em>], |
Cambridge University Press, November 2005, 450 pages. ISBN 0521849306 | Cambridge University Press, November 2005, 450 pages. ISBN 0521849306 | ||
<blockquote><b>Book description:</b><br>Oriented matroids play the role of matrices in discrete geometry, when metrical properties, such as angles or distances, are neither required nor available. Thus they are of great use in such areas as graph theory, combinatorial optimization and convex geometry. The combination of concrete applications and computation, the profusion of illustrations, and the large number of examples and exercises will make this an ideal introductory text on the subject. It will also be valuable for self-study for mathematicians and computer scientists working in discrete and computational geometry.</blockquote> | <blockquote><b>Book description:</b><br>Oriented matroids play the role of matrices in discrete geometry, when metrical properties, such as angles or distances, are neither required nor available. Thus they are of great use in such areas as graph theory, combinatorial optimization and convex geometry. The combination of concrete applications and computation, the profusion of illustrations, and the large number of examples and exercises will make this an ideal introductory text on the subject. It will also be valuable for self-study for mathematicians and computer scientists working in discrete and computational geometry.</blockquote> | ||
Line 32: | Line 31: | ||
* [[Libraries_and_tools/Theorem_provers|Theorem provers]] | * [[Libraries_and_tools/Theorem_provers|Theorem provers]] | ||
− | ==Tutorials and | + | ==Tutorials and blogs on Haskell for mathematicians== |
+ | * [http://sigfpe.blogspot.com/2006/11/yoneda-lemma.html Reverse Engineering Machines with the Yoneda Lemma] | ||
+ | * [http://sigfpe.blogspot.com/2006/11/variable-substitution-gives.html Variable substitution gives a...] | ||
+ | * [http://sigfpe.blogspot.com/2006/11/from-l-theorem-to-spreadsheet.html From Löb's Theorem to Spreadsheet Evaluation] | ||
+ | * [http://sigfpe.blogspot.com/2006/10/games-strategies-and-self-composition.html Games, Strategies and the Self-Composition of the List Monad.] | ||
+ | * [http://sigfpe.blogspot.com/2006/09/practical-synthetic-differential.html Practical Synthetic Differential Geometry] | ||
+ | * [http://sigfpe.blogspot.com/2006/09/more-low-cost-geometric-algebra.html More Low Cost Geometric Algebra] | ||
+ | * [http://sigfpe.blogspot.com/2006/09/learn-maths-with-haskell.html Learn Maths with Haskell] | ||
+ | * [http://sigfpe.blogspot.com/2006/08/algebraic-topology-in-haskell.html Algebraic Topology in Haskell] | ||
+ | * [http://sigfpe.blogspot.com/2006/09/infinitesimal-types.html Infinitesimal Types] | ||
+ | * [http://sigfpe.blogspot.com/2006/08/geometric-algebra-for-free_30.html Geometric Algebra for Free!] | ||
* [http://sigfpe.blogspot.com/2006/01/eleven-reasons-to-use-haskell-as.html Eleven Reasons to use Haskell as a Mathematician] | * [http://sigfpe.blogspot.com/2006/01/eleven-reasons-to-use-haskell-as.html Eleven Reasons to use Haskell as a Mathematician] | ||
+ | * [http://sigfpe.blogspot.com/2006/06/laws-of-form-opinion.html Laws of Form: An Opinion] | ||
+ | * [http://blog.mikael.johanssons.org/archive/2006/11/a-algebras-and-group-cohomology/ A-algebras and group cohomology] | ||
* [http://blog.mikael.johanssons.org/archive/2006/10/prototyping-thought/ Prototyping thought] | * [http://blog.mikael.johanssons.org/archive/2006/10/prototyping-thought/ Prototyping thought] | ||
* [http://blog.mikael.johanssons.org/archive/2006/10/computational-group-theory-in-haskell-1-in-a-series/ Computational Group Theory in Haskell] | * [http://blog.mikael.johanssons.org/archive/2006/10/computational-group-theory-in-haskell-1-in-a-series/ Computational Group Theory in Haskell] | ||
* [http://blog.mikael.johanssons.org/archive/2006/07/carry-bits-and-group-cohomology/ Carry bits and group cohomology] | * [http://blog.mikael.johanssons.org/archive/2006/07/carry-bits-and-group-cohomology/ Carry bits and group cohomology] | ||
− | * [http:// | + | * [http://scienceblogs.com/goodmath/2006/11/why_haskell.php Why Haskell?] |
− | + | * [http://scienceblogs.com/goodmath/2006/09/programs_are_proofs_models_and_1.php Programs are Proofs: Models and Types in Lambda Calculus] | |
− | * [http:// | + | |
− | + | ||
− | + | ||
[[Category:Community]] | [[Category:Community]] | ||
[[Category:Mathematics|*]] | [[Category:Mathematics|*]] |
Revision as of 01:48, 27 November 2006
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."
and
- "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.
Contents |
1 Textbooks
- Kees Doets and Jan van Eijck
- The Haskell Road to Logic, Maths and Programming
- King's College Publications, London, 2004. ISBN 0-9543006-9-6 (14.00 pounds, $25.00).
Book description:
The purpose of this book is to teach logic and mathematical reasoning in practice, and to connect logical reasoning with computer programming. Throughout the text, abstract concepts are linked to concrete representations in Haskell. Everything one has to know about programming in Haskell to understand the examples in the book is explained as we go along, but we do not cover every aspect of the language. Haskell is a marvelous demonstration tool for logic and maths because its functional character allows implementations to remain very close to the concepts that get implemented, while the laziness permits smooth handling of infinite data structures. We do not assume that our readers have previous experience with either programming or construction of formal proofs. We do assume previous acquaintance with mathematical notation, at the level of secondary school mathematics. Wherever necessary, we will recall relevant facts. Everything one needs to know about mathematical reasoning or programming is explained as we go along. We do assume that our readers are able to retrieve software from the Internet and install it, and that they know how to use an editor for constructing program texts.
- Jrgen Bokowski
- Computational Oriented Matroids,
Cambridge University Press, November 2005, 450 pages. ISBN 0521849306
Book description:
Oriented matroids play the role of matrices in discrete geometry, when metrical properties, such as angles or distances, are neither required nor available. Thus they are of great use in such areas as graph theory, combinatorial optimization and convex geometry. The combination of concrete applications and computation, the profusion of illustrations, and the large number of examples and exercises will make this an ideal introductory text on the subject. It will also be valuable for self-study for mathematicians and computer scientists working in discrete and computational geometry.
2 Libraries
A growing collection of Haskell math libraries.
3 Theorem proving
There has been a long tradition of mechanised reasoning in and about Haskell.
4 Tutorials and blogs on Haskell for mathematicians
- 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