I'm a research mathematician at a research institute with a bunch of other mathematicians (a number of whom are also expert programmers). I recently (starting three months ago) have been learning Haskell. I'm going to give a talk to the staff about it. Most of the audience are pretty experienced programmers in C/C+/Python, but with little or no exposure to functional languages. I'm looking for talks from which I can cannibalize good selling points. I was led to Haskell by a somewhat circuitous route: at our place, as with most of the world, parallel programs (especially using GPUs) are becoming more important. A little googling lead me a few interesting projects on automatic mapping computations to GPUs, all of which were based on Haskell. I feel that this will be the way to go. There's one guy on the staff who's a demon programmer: if someone needs something to be adapted to GPUs they go to him. Unfortunately I find reading his code rather difficult -- it's rather baroque and opaque. Thus, I'd like something more high level, and something amenable to optimization algorithms.
In my former life I worked at IBM research on one of the leading edge compiler optimization projects, and learned to appreciate the need for clear semantics in programs, not just for developing correct programs, but also to allow really aggressive optimizations to be performed. This is another reason that I'm interested in functional languages.
I know that I'll get peppered with questions about efficiency. We (our staff) is interested in *very* large scale computations which must use the resources as efficiently as possible. One of our staff members also opined that he felt that a lazy language like Haskell wouldn't be acceptable, since it was impossible (or extremely difficult) to predict the storage use of such a program.
So, any suggestions are welcome.
Victor