
Thank you to everyone who responded. My main question was "Say you had a C program. Can you always convert it to Haskell in such a way that the compiled Haskell is not too slow and does not need too much memory?" supposing that too slow means slower than 1/4 the speed of C and too much memory means twice the memory of C. Let me summarize some of your responses: 1) The general consensus seems to be the answer is probably yes. The exceptions, if there are any, are C programs with complex data structures. 2) One of the simpler ways to get the speed and memory efficiency of C is using the ST monad. 3) The "Foreign Function Interface" (FFI) is sometimes used by Haskell programmers to improve the speed or memory efficiency of a slow or memory intensive subroutine. 4) For my particular project, I should look into "hmatrix" which binds to LAPACK, a linear algebra package that I have used before. 5) The conversion process from the C program to the speedy Haskell program is probably not simple. These responses were great! Cheers, Hein