PLDB
Languages Patterns Calendar About Lists Join

Units of Measure

Units of Measure

Units of Measure is a design pattern. Some languages have builtin units of measurement.

Languages with Units of Measure include f-sharp, frink, modelica, nemerle, ti-89-basic

Example from F#:

// https://fsharpforfunandprofit.com/posts/units-of-measure/ [<Measure>] type N = kg m/sec^2 let force1 = 5.0<kg m/sec^2> let force2 = 5.0<N> force1 = force2 // true

Example from Frink:

10 feet 12 feet 8 feet -> gallons

Example from Modelica:

type SpecificHeatCapacity = Real ( final quantity="SpecificHeatCapacity", final unit="J/(kg.K)" );

Example from Nemerle:

def m3 = 1 g; def m4 = Si.Mass(m1); WriteLine($"Mass in SI: $m4, in CGS: $m3"); def x1 = Si.Area(1 cm * 10 m); WriteLine($"Area of 1 cm * 10 m = $x1 m");

Example from TI-89 series:

54_kg * (_c^2)

Article source

PLDB - Build the next great programming language. v5.0.0 - Email ยท Github