这个问题是密切相关的这些的(1,2,3)F#Ununit - reunit功能
我用它好好尝试一下(还)的外部库处理措施的单位内。我希望能够在我把它们传入之前将'ununit'的值,然后在重新获得结果时'重新组合'它们。
问题是我想避免被迫提前宣布WHICH单位。
范例片段
let ExternalNonUnitAwareFunction s = s + 1.
let MyUnitAwareClient (s:float<'u>) = //'
//1. this option "flattens" to no unit, or fixes to first inferred unit
//let (unit:float<'u>) = 1.0<_>
//2. this works fine, except for 0!
let unit = s/(float s)
s |> float |> ExternalNonUnitAwareFunction |> (*) unit
我没有设法制定出如何处理这一个...
更新 如果我有understood correctly,F#的最终版本将包括功能去做这个。
月份CTP版/ 2010 Beta 1的版本有计量单位支持已签名的整型类型 - 请参阅http://blogs.msdn.com/dsyme/archive/2009/05/20/detailed-release-notes-for-the-f-may-2009-ctp-update-and- visual-studio-2010-beta1-releases.aspx – 2009-09-09 10:01:02