English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
Estimating the size of the ocaml community
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2005-02-06 (10:03)
From: Thomas Fischbacher <Thomas.Fischbacher@P...>
Subject: Re: [Caml-list] The boon of static type checking

On Sun, 6 Feb 2005, Erik de Castro Lopo wrote:

> > (5) Availability of useful libraries.
> I would add:
>   (6) Its far harder to shoot yourself in the foot using O'caml than
>       it is in C or C++. In particular, in O'caml comapred to C++, if 
>       it compiles, its far more likely to work.

Well, yes, but these - I suppose - are more or less completely out of 
discussion here. :-)

> which holds Lisp as being the closest approximation to a superset of all
> other languages. The main feature of Lisp which supposed puts it in this 
> position is Lisp macros. I also hear that higher order functions are not
> used as much in Lisp as they are in O'caml and that this is because of
> Lisp's more lax type checking.
> Drawing a long bow here, I would postulate that a language with O'caml's
> HOF and strict typing and Lisp like macros, might be able to knock Lisp
> off its perch. Maybe Nemerle (not that I've used it):

What if I added optional(!) strict typing to lisp?

Concerning HOF, I don't have a clear picture what a nice way to have 
something like that for lisp would be. Implementation wise, one would not 
want to map e.g.

fun x y -> x


fun x -> fun y -> y

that is, (lambda (x) (lambda (y) x)),

but rather have currying work as a certain form of partial application. 
This might interfere somewhat badly with lisp's idea of optional and 
keyword args, 

>     http://www.nemerle.org/

Oh. Great. Another language. Another occasion to repeat lots of dumb 
mistakes, another reason to re-invent a lot of wheels.

regards,               tf@cip.physik.uni-muenchen.de              (o_
 Thomas Fischbacher -  http://www.cip.physik.uni-muenchen.de/~tf  //\
(lambda (n) ((lambda (p q r) (p p q r)) (lambda (g x y)           V_/_
(if (= x 0) y (g g (- x 1) (* x y)))) n 1))                  (Debian GNU)