Generics F#类型与度量单位vs系统数学

Generics F#类型与度量单位vs系统数学,generics,f#,units-of-measurement,Generics,F#,Units Of Measurement,我定义了自己的度量单位来表示弧度: [<Measure>] type rad [] rad型 然后我意识到,拥有一个类型为float的值,我无法使用System.Math中定义的许多函数(因为它们与“普通”float一起工作) let valueWithUnit=5.45 设absValue=Math.Abs valueWithUnit//float(参数:float)= arg*1。 |>f |> (*) 1. 让result=(liftToRadFunc Math.Abs)v

我定义了自己的度量单位来表示弧度:

[<Measure>]
type rad
[]
rad型
然后我意识到,拥有一个类型为
float
的值,我无法使用System.Math中定义的许多函数(因为它们与“普通”float一起工作)

let valueWithUnit=5.45
设absValue=Math.Abs valueWithUnit//float(参数:float)=
arg*1。
|>f
|> (*) 1.
让result=(liftToRadFunc Math.Abs)valueWithUnit/F#的大部分都是度量单位。例如,
abs
使用度量单位,并使
System.Math.abs
冗余

可以根据使用的单位从问题中概括出函数:

let liftToKeepUnits f (arg : float<'u>) : float<'u> =
    float arg |> f |> LanguagePrimitives.FloatWithMeasure
当使用所有这些功能时,不知道单位的功能将成为例外,在其余情况下手动添加或删除单位并不是什么大问题。

F#的大部分功能都知道度量单位。例如,
abs
使用度量单位,并使
System.Math.abs
冗余

可以根据使用的单位从问题中概括出函数:

let liftToKeepUnits f (arg : float<'u>) : float<'u> =
    float arg |> f |> LanguagePrimitives.FloatWithMeasure
当使用所有这些功能时,不知道单位的功能将成为例外,在其余情况下手动添加或删除单位并不是什么大问题。

F#的大部分功能都知道度量单位。例如,
abs
使用度量单位,并使
System.Math.abs
冗余

可以根据使用的单位从问题中概括出函数:

let liftToKeepUnits f (arg : float<'u>) : float<'u> =
    float arg |> f |> LanguagePrimitives.FloatWithMeasure
当使用所有这些功能时,不知道单位的功能将成为例外,在其余情况下手动添加或删除单位并不是什么大问题。

F#的大部分功能都知道度量单位。例如,
abs
使用度量单位,并使
System.Math.abs
冗余

可以根据使用的单位从问题中概括出函数:

let liftToKeepUnits f (arg : float<'u>) : float<'u> =
    float arg |> f |> LanguagePrimitives.FloatWithMeasure
当使用所有这些特性时,不知道单元的函数将成为例外,在其余情况下手动添加或删除单元并不是什么大问题