Pregunta

Al importar números desde un archivo csv, necesito convertirlos a flotadores con la unidad.

Actualmente hago esto con una función en línea:

data |> List.map float |> List.map (fun n -> n * 1.0<m>)

Pero me pregunto si hay una forma más elegante de hacerlo, ¿o tengo que crear mi propio módulo de 'unidades' con funciones de conversión?

Lo que sería realmente bueno sería algo como esto, pero dudo que sea posible ...

data |> List.map float |> List.map lift<m>

Esto es lo contrario de mi pregunta anterior ( How para eliminar genéricamente F # Unidades de medida ).

ACTUALIZACIÓN: para unidades caseras, he intentado esto, que funciona bien:

[<Measure>]
type km = 
    static member lift (v:float) = v * 1.0<km>

data |> List.map float |> List.map km.lift

o, siguiendo la pregunta en esta respuesta

data |> List.map (float >> km.lift)

Otros consejos

¿Hay alguna razón por la que tenga que mapear dos veces? ¿Qué está mal con esto:

data |> List.map (fun x -> (float x) * 1.0<m>)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top