错误:此表达式应该具有byte []类型,但在F#

时间:2015-07-22 09:41:58

标签: function f# f#-3.0

   let IndexOf (searchWithin:byte[])(searchFor:byte[])(startIndex:int):(int) =
      //Function defination
   0

   //calling thisfunction using below
   let endIndex = IndexOf(data, delimiterBytes, startIndex)

   //data is type of byte[], delimiterBytes is also type of byte[] and 
   //startIndex is type of interger.

我收到错误,例如“此表达式应该有类型byte [],但这里有类型'a *'b *'c”。我不明白'a *'b *'c的含义是什么以及它为什么会出现错误。感谢。

1 个答案:

答案 0 :(得分:3)

问题是你的函数定义是所谓的curried形式,如

let t a b c = ...

需要像这样使用:

t 1 2 3

您可以将声明更改为元组形式

let t (a,b,c) = ...

或将使用情况更改为

t 1 2 3

这是一种咖喱形式。

有关差异的更多信息,请参阅此处:F# parameter passing