Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[Caml-list] baffled by semicolon
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2004-08-26 (04:19)
From: Alex Valdez <alexandervaldez@s...>
Subject: RE: [Caml-list] baffled by semicolon
The semicolon separates a series of expressions. The value of a series of
expressions separated by semicolons is the value of the last expression.
Every expression except the last must evaluate to unit.

The following code snippet

 let w = area#misc#realize ()


is the same as

 let w = area#misc#realize ( () ; area#misc#window );;

which is the same as

 let w = area#misc#realize area#misc#window;;

-----Original Message-----
[]On Behalf Of
Sent: Wednesday, August 25, 2004 10:23 PM
Subject: [Caml-list] baffled by semicolon

This might really by a lablgtk2 question, but I thought it's probably
more of a ocaml syntax question :

The following works :

let window = GWindow.window ~width:400 ~height:400()

let area = GMisc.drawing_area ~packing:window#add ()

let w = area#misc#realize ()


let drawing = new GDraw.drawable w

However making the simple change

let w = area#misc#realize ()

^^ notice the double semicolon gives an error:
This expression has type unit but is here used with type
  [> `drawable ] Gobject.obj

For the simple reason that w has somehow, mysteriously, become = ()
instead of Gdk.window which is the value it would acquire if it was
only a single semi-colon.

I went back through the manual and really couldn't find anything which
explained the difference between ; and ;; - so it's not at all obvious
to me what's going on here.  I would think that w would take on the value of

 area#misc#realize ()

in either case.



To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list:

To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: