[clean-list] Clean and scientific programming

Siegfried Gonzi siegfried.gonzi@kfunigraz.ac.at
Thu, 30 Aug 2001 16:52:26 +0200


Jan Kort wrote:

> A debate rekindled" [1].
> It's a followup to an earlier debate where the conclusion was
> that Fortran was a bad thing but "Fortran and only Fortran
> provided the performance needed for large-scale scientific computing".
> Cann reopens the debate in this article by pitting Sisal
> against Fortran. Sisal more or less destroys Fortran.

The article is dated back to 1991, could it be possible that they
compared Fortran 77 and not Fortran 90?

> Although Sisal is dead, the results are still significant:
> they show that there is a feature for functional
> languages in scientific computing. 

I think there is an undiscussed problem: Does a functional language need
some sort of imperative-"loop style" for beeing numerically efficient
(see FISH link below)?

For example, a colleague (now Postdoc in Newzealand) of mine wrote an
IDL program which interpolates some values. A complete suit takes on our
fastest Suns 2 days on computation time.

I want to rewrite it, because the program is based on a native IDL
routine and I do not trust it. But now I am dangling around with file
access in Clean first. And IDL (Yorick, Matlab) code becomes unreadable,
because I often do not know is there an array or a value passed, e.g:

f(a,b)

could mean a is an arry and b is an value or both are values...

In Clean I like the information:

f:: !Int *{#Real} -> !Real
f a b =...


I know what is beeing passed around.


But the programming community does not adress: do we need
loop-constructs (as for example in Lisp or OCaml)? 
 
>I am not sure which
> implementation research focusses on now, maybe single
> assignment C ?

http://www-staff.it.uts.edu.au/~cbj/FISh/Announcement/


S. Gonzi