2008-09-02 5 views
14

Hat jemand eine Chance gehabt zu graben in, wie F# Units of Measure arbeiten? Ist es nur Typ-basierte Schikane, oder gibt es darunter versteckte CLR-Typen, die (möglicherweise) aus anderen .net-Sprachen verwendet werden könnten? Wird es für irgendeine numerische Einheit funktionieren oder ist es auf Gleitkommawerte beschränkt (was ist das, was alle Beispiele verwenden)?Wie funktionieren F # Maßeinheiten?

+0

Werfen Sie einen Blick auf Frink Rechner und Frink Programmiersprache. –

Antwort

11

Nach einem response auf dem nächsten verwandten Blogpost, sie sind ein rein statischer Mechanismus in der F # Compiler. Daher gibt es keine CLR-Darstellung der Einheitsdaten.

Es ist nicht ganz klar, ob es derzeit mit Nicht-Float-Typen arbeitet, aber aus Sicht des Typsystems ist es theoretisch möglich.

+1

Siehe neuesten Blogpost von Andrew Kennedy (in der Antwort unten), UOM sind für jeden numerischen Typ sowie zusammengesetzte Typen verfügbar. – Benjol

15

Der beste (und ich denke, offizielle) Ort, um darüber herauszufinden, ist auf Andrew Kennedys Blog.

Hier sind die (aktuellen) relevanten Beiträge.

Wie ich in der Post sagte, dass Ihr Beantworter bezeichnet, dies ist definitiv etwas, das Sie nicht in C# tun können (obwohl ich wünschte, du könntest).