Frage

Ich habe einige Datenmanipulation Code bekam, die am Ende csv ausspuckt.

Ich begann es ein Upgrade Maßeinheiten hinzuzufügen überall, aber ich habe jetzt ein Problem mit meiner csv-Funktion:

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

(die Parameter sind, Dateiname, Spaltenanordnung, die Spaltenüberschriften, Abscheider)

Wo ich vorher gesendet [| s; x; y |] zu WriteCSV, habe ich jetzt ein Problem haben, weil ich nicht [senden | skm; xmm; ymm |.]

Ich habe versucht, eine Funktion zu schreiben für allgemein Maßeinheiten zu entfernen, aber es funktioniert nicht.

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

Meine Fragen sind:

  • Warum es nicht funktioniert?
  • Kann es gemacht werden, um zu arbeiten?
  • Gibt es eine andere Möglichkeit, dieses besondere Problem zu lösen?
War es hilfreich?

Lösung

Wenn ich dein Problem richtig verstanden habe, Gießen Sie es auf „reine“ float der Einheit entfernt. Zum Beispiel:

[<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> -> float

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top