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
Option functions (or lack thereof) + operator for composition
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2010-11-16 (11:27)
From: Serge Le Huitouze <serge.lehuitouze@g...>
Subject: Option functions (or lack thereof) + operator for composition

While writing a sample program (with lablgtk2), I found a few things annoying
and thought I would ask here what you guys think.

1. Option type
It seems that there is no predefined function to test an "'a option" for being
specifically "None" or "Some _". This seems to be confirmed by the very
existence of:
which defines such functions ("is_none" and "is_some").
I found it weird to be forced to use "match" expressions in my code for
doing that, e.g.:
*  let curSelectedRow = ref None in
*  let updateButtonsStatus () =
*      button_remove#misc#set_sensitive
*              (match !curSelectedRow with None -> false | _ -> true)
*  in
*  ...

I could add the OCaml library mentioned above, but I don't know how to do
it (and where to find it) and, since my code is supposed to go into some other
code, I'd prefer avoiding adding yet another dependency to it...

2. Operator for composition (and its precedence)
To get rid of many warnings, I wrapped some calls (the "connect" calls of
my widgets) into "ignore (f x y)" statements.
I've no particular grief in using "ignore", but I find the parentheses
*really* annoying.

In Haskell, I would write "ignore $ f x y", which I find much lighter weight.

I'm not familiar with operators and their precedence, but I wonder: is it
possible to do something similar with OCaml?

Thanks for reading.

Best regards.