1
我写了一个功能,我已经开始重构它,但我有与方法‘圆’一个“独特的过载的一些问题无法确定依据在此节目点之前输入信息。“错误,但我不明白为什么。F#:类型推断没有找到正确的过载
let CheckValuesLin (lowValue, highValue) multiplier (sigFigs:int) =
let arithmean (lowValue, highValue) =
(lowValue + highValue)/2.0
let createRangeValue numberModifier meanfunction=
let mean = meanfunction (lowValue, highValue)
let rangeValue = mean + (numberModifier mean) * multiplier
Math.Round(rangeValue, sigFigs)
let createRangeValues valueCreatingFunction=
(createRangeValue makeNegative arithmean, createRangeValue keepPositive arithmean)
let greatestMinValue, lowestMaxValue = createRangeValues createRangeValue
(greatestMinValue, lowestMaxValue)
失败是Math.Round线,当我设置range
到range: float
其消失的线。这让我感到困惑,因为我徘徊的一切似乎都已经有了正确的类型,包括范围和意思。
我不介意把类型暗示的,我只是想知道为什么会失败。
如果是这样的情况下,不会对float类型的“meanFunction”一类的提示*浮子>浮法解决这一问题?它不,所以也许我误解了你的答案? – Sean
@Sean - 'numberModifier'中还有一个不错的类型 - 虽然我认为它应该被引用为'float - > float',但这并不是由于某种原因。虽然我不确定为什么 –
@Sean - 我最初得到和你一样的错误,但是重置我的fsi使它消失了,我只在'meanfunction'中添加了一个注释,我 –