* Measures
@ 2008-09-21 23:30 Jon Harrop
2008-09-21 23:15 ` [Caml-list] Measures Hezekiah M. Carty
0 siblings, 1 reply; 2+ messages in thread
From: Jon Harrop @ 2008-09-21 23:30 UTC (permalink / raw)
To: caml-list
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!
--
Dr Jon Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/?e
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [Caml-list] Measures
2008-09-21 23:30 Measures Jon Harrop
@ 2008-09-21 23:15 ` Hezekiah M. Carty
0 siblings, 0 replies; 2+ messages in thread
From: Hezekiah M. Carty @ 2008-09-21 23:15 UTC (permalink / raw)
To: Jon Harrop; +Cc: caml-list
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
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2008-09-21 23:15 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-09-21 23:30 Measures Jon Harrop
2008-09-21 23:15 ` [Caml-list] Measures Hezekiah M. Carty
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox