4

最後にcsvを吐き出すデータ操作コードがあります。

どこにでも測定単位を追加するためにアップグレードを開始しましたが、現在、csv 関数に問題があります。

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

(パラメーターは、ファイル名、列配列、列ヘッダー、セパレーターです)

以前 [|s;x;y|] を WriteCSV に送信したところ、[|skm; を送信できないため、問題が発生しました。xmm; ymm|]。

測定単位を一般的に削除する関数を作成しようとしましたが、機能しません。

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

私の質問は次のとおりです。

  • うまくいかないのはなぜですか?
  • 動作させることはできますか?
  • この特定の問題を解決する別の方法はありますか?
4

1 に答える 1

8

あなたの問題が正しければ、それを「純粋な」フロートにキャストすると、ユニットが削除されます。例えば:

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

于 2009-01-05T07:49:59.260 に答える