Jelle Ferringa wrote:

>Since I haven't got actual experience programming CAML I'd like to
speculate

>that OCAML would be a very pythonic way of extending python: its

>open-source, object oriented, as fast as C, and ! garbage collecting!
The open source g95 Fortran 95 compiler is already usable and will be

officially released this year. Fortran and C are comparable in speed,

and if one uses allocatable arrays rather than pointers, memory leaks

should not occur. Fortran 2003 supports OOP with inheritance, and a few

F95 compilers already have this functionality.

>That's depending on how you compare; I find OCAML quite readable
compared to C / Fortran .

Have you ever used Fortran 90 or 95?

I don't use OCAML, so I looked at some OCAML code to multiply matrices

at

http://shootout.alioth.debian.org/be...&id=0&sort=cpu
from the Computer Language Shootout . To create a matrix the OCAML code

is

7 let mkmatrix rows cols =

8 let count = ref 1 and last_col = cols - 1

9 and m = Array.make_matrix rows cols 0 in

10 for i = 0 to rows - 1 do

11 let mi = m.(i) in

12 for j = 0 to last_col do mi.(j) <- !count; incr count done;

13 done;

In Python with Numeric it's just

x = zeros([nrow,ncol],Float)

and in Fortran 90/95 it's just

real, allocatable :: x(:,

allocate (x(nrow,ncol))

There appears not to be a built-in function for matrix multiplication

in OCAML. There is in Python with Numeric or Numarray or Fortran 90/95.

For problems where the main data structures are arrays, OCAML seems to

be considerably more low-level than Python with Numeric/Numarray or

Fortran 90/95. Also, there exists a vast computational infrastructure

in Fortran and C (see

http://www.netlib.org). Does OCAML have this?