Convertendo de m / s para km / h usando F # Units of Measure
Eu estou no processo de aprender F # - e atualmente estou olhando para unidades de medida. Eu tenho um cálculo simples retornando metros por segundo, e quero introduzir uma função convertendo-a em quilômetros por hora.
Meu código é assim:
[<Measure>] type kg
[<Measure>] type s
[<Measure>] type m
[<Measure>] type km
[<Measure>] type h
let msToKmph(speed : float<m/s>) =
(float speed) * 3.6<km/h>
let gravityOnEarth = 9.81<m/s^2>
let heightOfJump = 3.5<m>
let speedOfImpact = sqrt (2.0 * gravityOnEarth * heightOfJump)
let speedOfImpactKmh = msToKmph(speedOfImpact)
Isso funciona - recebo 8.28673639 m / se 29.832251 km / h. O que eu não tenho certeza é se essa é a melhor maneira de expressar a relação entre diferentes unidades. Isso pode ser feito com mais elegância?
Por exemplo, a linha fazendo (velocidade de flutuação) para remover a informação da unidade do parâmetro de velocidade, para fazer o msToKmph retornar km / h. Se eu não removesse as informações da unidade antes de fazer o cálculo, a unidade retornada seria: km m / (h s)