
I'm a complete newcomer to Haskell, having learned about only recently. I'm intrigued by the possibility of in using it for numerical applications, specifically linear algebra. I understand that (at least in its present state) Haskell 98 isn't competitive with imperative languages when it comes to primitive matrix-vector operations, which often rely on destructive updating. It strikes me that one approach that takes advantage of the strengths of both paradigms would be create an imperative subsystem to handle primitive operations, then create a functional matrix algebra layer on top of it. [..]
One thing that comes to mind is Barry Jay's FISh language:
http://www-staff.it.uts.edu.au/~cbj/Publications/shapes.html#Array_Programmi...
This compiles code in a functional language with arrays down to C, by using "shape inference" to fix the size of all the arrays.
I believe FFTW (the Fastest Fourier Transform in the West) similarly uses a functional programming language to generate imperative (C) code.
--KW 8-)
--
Keith Wansbrough