Browse thread
[Caml-list] Strange syntax behavior
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ 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 |
Hello, 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";; yes done - : unit = () # try p "test" with Not_found -> p "exc"; p "done";; test - : unit = () # try raise Not_found with Not_found -> p "exc"; p "done";; exc done - : unit = () # try p "test" with Not_found -> begin p "exc"; end; p "done";; test - : 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