Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不理解F#错误消息:类型';蜡烛.体积->;总计';与类型';总计';_F# - Fatal编程技术网

不理解F#错误消息:类型';蜡烛.体积->;总计';与类型';总计';

不理解F#错误消息:类型';蜡烛.体积->;总计';与类型';总计';,f#,F#,我有以下信息: “Candle.Volumes->Totals”类型与“Totals”类型不兼容 总计类型为: type Totals = { VolumeBeforePrice : int64 Volume : int64 ContractsCount : float } 错误发生在: let aggregatedAsks = CalculatePriceAtBaseVolume asks let volume = aggregatedAsks.Vol

我有以下信息:

“Candle.Volumes->Totals”类型与“Totals”类型不兼容

总计类型为:

type Totals = {
    VolumeBeforePrice : int64
    Volume : int64
    ContractsCount : float
}
错误发生在:

    let aggregatedAsks = CalculatePriceAtBaseVolume asks
    let volume = aggregatedAsks.Volume
(在let 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的函数。

CalculatePriceAtBaseVolume
接受两个参数并具有类型

OrderBook.Entry list -> Candle.Volumes -> Totals 
F#函数是循环的,因此应用单个参数的结果会导致一个参数的另一个函数。您只提供了一个类型为
OrderBook.Entry list
so的参数

CalculatePriceAtBaseVolume asks
具有类型
Candle.Volumes->Totals


表达式
aggregatedAsks.Volume
要求
aggregatedAsks
具有类型
Totals
,但它具有类型
Candle.Volumes->Totals
,如类型错误所示。

CalculatePriceAtBaseVolume
接受两个参数并具有类型

OrderBook.Entry list -> Candle.Volumes -> Totals 
F#函数是循环的,因此应用单个参数的结果会导致一个参数的另一个函数。您只提供了一个类型为
OrderBook.Entry list
so的参数

CalculatePriceAtBaseVolume asks
具有类型
Candle.Volumes->Totals


表达式
aggregatedAsks.Volume
要求
aggregatedAsks
具有类型
Totals
,但它具有类型
Candle.Volumes->Totals
,正如类型错误所示。

因此,如果我理解得很清楚,缺少一个参数,它将值转换为一个curried函数,而不是其返回类型;这是正确的吗?@Thomas-
CalculatePriceAtBaseVolume
是一个curried函数,因此从技术上讲只有一个参数,当应用该参数时,它会返回一个参数的另一个函数,即
OrderBook.Entry list->(Candle.Volumes->Totals)
。如果您定义了一个函数,但没有提供所有声明的参数,则结果是另一个函数。@Thomas-如果您不熟悉咖喱,有一个很好的解释。咖喱在第五篇文章中进行了解释,但按顺序阅读是明智的,因为后面的文章建立在前面文章中介绍的概念之上。然后继续,把那个(优秀的)站点标记为书签,因为在学习F#时,你会想经常引用它。因此,如果我理解得很好,一个参数丢失了,它将值转换为一个curry函数,而不是它的返回类型;这是正确的吗?@Thomas-
CalculatePriceAtBaseVolume
是一个curried函数,因此从技术上讲只有一个参数,当应用该参数时,它会返回一个参数的另一个函数,即
OrderBook.Entry list->(Candle.Volumes->Totals)
。如果您定义了一个函数,但没有提供所有声明的参数,则结果是另一个函数。@Thomas-如果您不熟悉咖喱,有一个很好的解释。咖喱在第五篇文章中进行了解释,但按顺序阅读是明智的,因为后面的文章建立在前面文章中介绍的概念之上。然后继续,把那个(优秀的)网站加入书签,因为当你学习F#时,你会想经常参考它。