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
[Caml-list] partial eval question
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2004-02-04 (03:04)
From: Walid Taha <taha@c...>
Subject: RE: [Caml-list] partial eval question

Hi Jacques,

Please see my last email in responce to Ben's original email.  MSP in 
MetaOCaml doesn't require any "contortions".


On Mon, 27 Oct 2003, Jacques Carette wrote:

|> If you really want more control over code generation (not forgetting
|> that just writing out what you want by hand is often the simplest
|> option in practice!) then I think C++ templates are a dead end---far
|> better to make the object language the same as the target language,
|> as in MetaOcaml and similar.
|If you know what you want, MetaOcaml is great.  If you are
|prototyping/experimenting, then a typeless symbolic language (like Scheme or
|Maple) give you much greater flexibility.  MetaOcaml's contortions to get
|something like:
|> pow := proc(x,n::nonnegint) if n=0 then 1 else times(x,pow(x,n-1)) end if
|end proc;
|pow := proc(x, n::nonnegint)
|    if n = 0 then 1 else times(x, pow(x, n - 1)) end if
|end proc
|> unapply(pow(x,5), x);
|       x -> times(x, times(x, times(x, times(x, times(x, 1)))))
|is really quite burdensome.  Having the freedom of dealing with 'open' terms
|as first-class citizens is really very powerful, if somewhat dangerous.
|I have found Thiemann's PGG as the 'front end', coupled with
|Scheme-to-YourFavoriteLanguage translation to be quite effective PE
|strategy, at least when more basic 'symbolic computation' is not enough.
|To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
|Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
|Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners