caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Jacques Garrigue <garrigue@kurims.kyoto-u.ac.jp>
To: leary@nwlink.com
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] enums in OCaml?
Date: Thu, 14 Jun 2001 17:53:27 +0900	[thread overview]
Message-ID: <20010614175327U.garrigue@kurims.kyoto-u.ac.jp> (raw)
In-Reply-To: <20010614011550.A28578@jean>

> So, what's so wrong with just using variables?
> 
> let Accel = 1;;
> let Stop = 0;;
> 
> seems pretty short to write and shortest to use...  Am I missing something
> ( elegant | obvious )?  Is that just ugly?

If you use sum types, the compiler will
* check that in any pattern matching, or collection of objects
  (e.g. list), you only use constructors of the same sum type
* check whether your pattern matches are exhaustive or not, and avoid
  adding a default "_ -> .." clause at the end

These two checks take something like half of the bugs in any
program. So yes, this is paramount to use sum types rather than named
constants. The only case you want to use named constants is when you
do not have an exhaustive list of cases available, and want to be able
to add cases afterwards, making the above checks impossible. Even in
this case you may want to go for hybrid solutions, including a sum
type for the cases you know, but this is a bit more high-level.

Jacques Garrigue
-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


  parent reply	other threads:[~2001-06-14  8:53 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-06-13  2:21 leary
2001-06-13  7:37 ` David Mentre
2001-06-13  8:20   ` leary
     [not found] ` <200106130751.f5D7pbL11758@ionie.inria.fr>
2001-06-13  8:18   ` leary
2001-06-13  8:46     ` David Mentre
2001-06-14  8:15 ` leary
2001-06-14  8:41   ` Chris Hecker
2001-06-14  8:53   ` Jacques Garrigue [this message]
2001-06-14  9:12   ` Francisco Valverde Albacete
2001-06-14 13:04   ` Chris Quinn
2001-06-13 20:50 leary

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=20010614175327U.garrigue@kurims.kyoto-u.ac.jp \
    --to=garrigue@kurims.kyoto-u.ac.jp \
    --cc=caml-list@inria.fr \
    --cc=leary@nwlink.com \
    /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).