[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Hezekiah M. Carty <hcarty@a...> |
| Subject: | Re: [Caml-list] Measures |
On Sun, Sep 21, 2008 at 7:30 PM, Jon Harrop <jonathandeanharrop@googlemail.com> wrote: > > This latest post about statically typing constraints beyond mere > floating-point values reminds me that the F# programming language just got > another new feature called "measures" that lets you add phantom types > representing units of measure and even handles arithmetic over them for you. > > I have not used measures yet myself but I was just wondering if the OCaml > world had already seen anything like this? > > I had been under the impression that this could not be made to work but, > obviously, I was wrong! Jon, The OSP Delimited Overloading project has an example which does a very simple version of something similar to F# measures. The relevant example files can be viewed here: https://forge.ocamlcore.org/plugins/scmsvn/viewcvs.php/trunk/examples/length/?root=pa-do The underlying Length library code is based on a post by Richard Jones' (http://camltastic.blogspot.com/2008/05/phantom-types.html) and the syntactic sugar comes from the work done by the Delimited Overloading folks. It does not provide the very cool "x meters per second times y seconds gives z meters" that the F# feature seems to provide, but it does provide a start - meters + feet will throw a compile-time error, for example. Hez -- Hezekiah M. Carty Graduate Research Assistant University of Maryland Department of Atmospheric and Oceanic Science