Moreover we can translate lets to lambdas:

let () = print_endline "Foo" in
let () = print_endline "Bar" in
let () = print_endline "Baz" in
   ()

(fun () -> (fun () -> print_endline "Baz") (print_endline "Bar")) (print_endline "Foo")

Further transformation to use bind instead of function application and
wrapping the carried value into a type, leads to monads.

On Mon, Jul 22, 2013 at 12:42 PM, oliver <oliver@first.in-berlin.de> wrote:
Maybe it can be called just syntactical sugar...


========================================================================

let fun_a () = print_endline "A: FooBar";
               print_endline "A: Baz"

let fun_b () =
               let () = print_endline "B: FooBar" in
               let () = print_endline "B: Baz" in
               ()



let () =
   fun_a();
   fun_b()


(* or this one:, of course:

let () =
   let () = fun_a() in
   let () = fun_b() in
   ()

*)

========================================================================



Ciao,
   Oliver

--
Caml-list mailing list.  Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs