This repository contains various mini-projects that solve common mathematical problems (i.e. solving cubic equations, representing n-dimensional vector space, defining arbitrary algebraic data types of polynomials with I/O and list manipulation, and approximating integrals) using a functional programming language. Here, programs are declarative: they are sequences of side-effect free function definitions. Results are produced by evaluating expressions built from functions, which are defined as first-class values and used as rules. State change and Data mutation are avoided as much as possible.
Haskell is used because it's a well-established functional programming language. It's highly accessible and easy to use. It's purely functional, has a sophisticated static type system, and an interpreter (GHCi).
Michael Balas