我收到以下消息:
类型“ Candle.Volumes->总计”与类型“总计”不兼容
总计是类型:
type Totals = {
VolumeBeforePrice : int64
Volume : int64
ContractsCount : float
}
错误提示:
let aggregatedAsks = CalculatePriceAtBaseVolume asks
let volume = aggregatedAsks.Volume
(在出租量线上)
,调用的函数是:
let CalculatePriceAtBaseVolume (entries : OrderBook.Entry list) (minVolume : Candle.Volumes) : Totals =
let volumeRequested = Candle.ConvertVolumes(minVolume)
let zero =
{ VolumeBeforePrice = 0L
Volume = 0L
ContractsCount = 0. }
let aggregation = calculateTotals volumeRequested zero entries
aggregation : Totals
来自C家族,我不明白'Candle.Volumes-> Totals'的含义,因为它看起来不像类型,而是将x转换为y的函数。
答案 0 :(得分:4)
CalculatePriceAtBaseVolume
接受两个参数并具有类型
OrderBook.Entry list -> Candle.Volumes -> Totals
F#函数经过咖喱处理,因此应用单个参数的结果将导致另一个函数具有一个参数。您只提供了一个OrderBook.Entry list
类型的参数,所以
CalculatePriceAtBaseVolume asks
具有类型Candle.Volumes -> Totals
。
表达式aggregatedAsks.Volume
要求aggregatedAsks
的类型为Totals
,但类型错误指示的类型为Candle.Volumes -> Totals
。