Unidades de medida en F#
kg y jar viajan en el sistema de tipos; la unidad mala no compila.
// Units of measure ride the type system: kg + km will not compile.
[<Measure>] type kg
[<Measure>] type jar
let harvest = 12.4<kg>
let perJar = 0.34<kg/jar>
// The division cancels units: kg over kg/jar leaves jars.
let jars = harvest / perJar
printfn "Jars this pull: %.0f" (float jars)
let combined = harvest + 3.1<kg>
printfn "With the late frames: %.1f kg" (float combined)
// let broken = harvest + 2.0<jar> // the compiler stops this line
Cómo funciona
[<Measure>] type kgdeclara una unidad sin costo en runtime.0.34<kg/jar>tipa una tasa; la división cancela unidades.- La línea comentada muestra lo que el compilador rechaza.
Palabras clave y builtins usados aquí
floatlettype
El intento, en números
- Líneas
- 14
- Caracteres a escribir
- 449
- Tokens
- 83
- Ritmo de tres estrellas
- 60 tpm
Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 83 segundos.
Paso 2 de 3 en Firmas y pereza; paso 23 de 27 en Fundamentos del lenguaje.