Lors de l'importation de nombres à partir d'un fichier csv, j'ai besoin de les convertir en flotteurs avec unité.F # Unités de mesure - 'levage' des valeurs à flotter <something>
Actuellement, je le fais avec une fonction en ligne:
data |> List.map float |> List.map (fun n -> n * 1.0<m>)
Mais je me demande s'il y a un moyen de faire plus élégant cela - ou dois-je créer mon propre module « unités » avec conversion les fonctions?
Ce qui serait vraiment bien serait quelque chose comme ça, mais je doute qu'il est possible ...
data |> List.map float |> List.map lift<m>
C'est à l'opposé de ma question précédente (How to generically remove F# Units of measure).
MISE À JOUR: Pour les unités maison, je l'ai essayé, qui fonctionne bien:
[<Measure>]
type km =
static member lift (v:float) = v * 1.0<km>
data |> List.map float |> List.map km.lift
ou, suite à la question this answer
data |> List.map (float >> km.lift)
Étant donné que les unités sont purement à la compilation, il ne semble pas susceptible de changer. –
FloatWithMeasure m'a juste sauvé de beaucoup de cheveux en tirant, merci :) –