gpt4 book ai didi

F# 测量单位 - 'lifting' 值要 float

转载 作者:行者123 更新时间:2023-12-02 13:14:25 26 4
gpt4 key购买 nike

从 csv 文件导入数字时,我需要将它们转换为带单位的 float 。

目前我使用内联函数来执行此操作:

data |> List.map float |> List.map (fun n -> n * 1.0<m>)

但我想知道是否有更优雅的方法来做到这一点 - 或者我是否必须创建自己的带有转换函数的“单位”模块?

如果是这样的话,那就太好了,但我怀疑这是否可能......

data |> List.map float |> List.map lift<m>

这与我之前的问题 ( How to generically remove F# Units of measure ) 相反。

更新:对于自制装置,我已经尝试过这个,效果很好:

[<Measure>]
type km =
static member lift (v:float) = v * 1.0<km>

data |> List.map float |> List.map km.lift

或者,按照 this answer 中的问题

data |> List.map (float >> km.lift)

最佳答案

看起来度量单位暂时不能作为类型参数(不知道这是否会改变)。所以最短的写法是:

data |> List.map float |> List.map ((*) 1.0<m>)

编辑

现在另请参阅此处的FloatWithMeasure

http://msdn.microsoft.com/en-us/library/ee806527(VS.100).aspx

关于F# 测量单位 - 'lifting' 值要 float<something>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/419521/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com