This paper evaluates the elegance and efficiency of functional programming in
numerical scientific computing, an interesting area because time and space
efficiency are important: many scientific programs work with large data sets
and run for a long time. The example we use is the conjugate gradient
algorithm, an iterative method to solve systems of linear equations. We
investigated various implementations of the algorithm in the functional
languages Clean and Haskell and the imperative language C. Good results are
obtained when comparing the algorithm written in Clean with the same
algorithm in C and Haskell.