を必要とする外部関数を呼び出していますfloat[]が、配列はfloat<m>[]です。配列から測定単位を取り除くにはどうすればよいですか?
以下の関数のようなものが必要ですが、これはコンパイルされません。float<m>また、float値は同じであるため、配列の反復や複製は避けたいと思います。
let demeasure (arr:float<m>[]): float[] = float[] (arr)
を必要とする外部関数を呼び出していますfloat[]が、配列はfloat<m>[]です。配列から測定単位を取り除くにはどうすればよいですか?
以下の関数のようなものが必要ですが、これはコンパイルされません。float<m>また、float値は同じであるため、配列の反復や複製は避けたいと思います。
let demeasure (arr:float<m>[]): float[] = float[] (arr)
へのキャストとobjそれに続く動的なキャストがfloat[]機能すると思います。
(arr :> obj) :?> float[]
ランタイム表現がないためです。
おそらくも参照してください
[<Measure>]type m
let f (arr : float[]) : float = 0.0
let arr = [|1.0<m>|]
f (unbox (box arr))
let demeasure (arr: float<m>[]) = arr |> Array.map (fun i -> float i)