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] Strange syntax behavior
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2004-06-01 (17:14)
From: John Goerzen <jgoerzen@c...>
Subject: [Caml-list] Strange syntax behavior

I have found some mysterious bugs in a couple of my programs.  Here is a
test case to illustrate what is going on:

# let p = print_endline;;      
# if true then p "yes" else p "no"; p "done";;
- : unit = ()
# try p "test" with Not_found -> p "exc"; p "done";;
- : unit = ()
# try raise Not_found with Not_found -> p "exc"; p "done";;
- : unit = ()
# try p "test" with Not_found -> begin p "exc"; end; p "done";;
- : unit = ()

In the case of if...then...else, the else clause appears to consume only
the first statement following.  With try..with, the with clause appears
to consume everything it possibly can, despite even attempts to stop
that with a begin..end clause.

Is this a bug or a feature?  If a feature, why is this so?  the
try..with behavior seems highly misleading.

-- John

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