Pregunta

Tengo un código de manipulación de datos que escupe csv al final.

Comencé a actualizarlo para agregar unidades de medida en todas partes, pero ahora tengo un problema con mi función csv:

val WriteCSV : string -> 'a list array -> 'b list -> string -> unit

(los parámetros son fileName, array de columnas, encabezados de columna, separador)

Donde anteriormente envié [| s; x; y |] a WriteCSV, ahora tengo un problema, porque no puedo enviar [| skm; xmm; ymm |].

Intenté escribir una función para eliminar genéricamente unidades de medida, pero no funciona.

let removeUnit (n:float<_>) = n/1.0<_>

Mis preguntas son:

  • ¿Por qué no funciona?
  • ¿Se puede hacer que funcione?
  • ¿Hay otra forma de resolver este problema en particular?
¿Fue útil?

Solución

Si entendí bien su problema, póngalo en " pure " El flotador elimina la unidad. Por ejemplo:

[<Measure>] type m
[<Measure>] type km

let removeUnit (x:float<_>) =
    float x

let foo = removeUnit 2.6<m>
let foo2 = removeUnit 2.1<km>
  

val removeUnit: float < 'u > - > flotador

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top