Matlab seems an odd thing to ignore. It's pretty good for doing more computationally intensive work. It's not fantastic, but it gets the job done and has good plotting features. I generate a lot of publishable figures with matlab.
I've done some simulations using Fortran, and it's surprisingly good for a language it's age. It's been continually updated. Legacy features occasionally bite you in the ass. C is for drivers. I use it in the lab only when forced to.
So, what does Haskell offer? It looks nicer than C. Can I write drivers for odd-ball devices in it? Probably. Then again, I'm often just modifying some C-code from a vendor, so the choice is already made for me. Fortran is so well entrenched that I'm still going to wind up using it if I ever want to run something through some crazy hydrodynamics code somebody else already wrote. If I want to do stream-of-consciousness type stuff I'll still be using mathematica. How is it at plotting things? Probably not very good since it wasn't worth mentioning.
Sounds like another language I'll learn if I'm forced to.
If you really want to make this physicist drool the single best thing you can do is give me a development environment that combines rich plotting features and Latex input for comments. NOBODY HAS DONE THIS!!! Put a pleasant to use language under the hood and you might have a winner.
Actually, the FFI story in Haskell is pretty neat. In the past I've written Haskell plugins which interface to a C api for commercial, closed-source software which isn't a million miles from crazy hydrodynamics code. The idea of walling off statefulness behind a well-defined FFI interface and going to town on the functional side is nice. I certainly found it easier to make progress with GHC than with OCaml.
...to take a function of two arguments, say f(.,.), and construct from it a function of a single variable defined by f_x(y) = f(x,y). Computer scientists call such a thing a closure...
If not, are there plans to do this soon?
It's recursive, not circular, definition. A circular definition never ends while a recursive one does.
Oh... It seems I got the title wrong ;-)