caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Serge Le Huitouze <serge.lehuitouze@gmail.com>
To: caml-list@yquem.inria.fr
Subject: Option functions (or lack thereof) + operator for composition
Date: Tue, 16 Nov 2010 12:27:43 +0100	[thread overview]
Message-ID: <AANLkTimX1JOva2Ebc3FuTGiZ5W3zXAvHtoE9RrkO8v6=@mail.gmail.com> (raw)

Hi,

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:
http://ocaml-lib.sourceforge.net/doc/Option.html
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.

--Serge


             reply	other threads:[~2010-11-16 11:27 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-16 11:27 Serge Le Huitouze [this message]
2010-11-16 11:49 ` [Caml-list] " David Allsopp
2010-11-16 14:23   ` Michael Ekstrand
2010-11-16 13:30 ` Jacques Garrigue
2010-11-16 13:52   ` Serge Le Huitouze
2010-11-16 14:19     ` dmitry grebeniuk
2010-11-16 14:26 ` Michael Ekstrand
2010-11-16 15:18   ` bluestorm
2010-11-16 15:26 ` bluestorm

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='AANLkTimX1JOva2Ebc3FuTGiZ5W3zXAvHtoE9RrkO8v6=@mail.gmail.com' \
    --to=serge.lehuitouze@gmail.com \
    --cc=caml-list@yquem.inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).