Version française
Home     About     Download     Resources     Contact us    
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: -- (:)
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