我是f#编程的新手,我正在定义一些要使用的辅助函数.以下是其中两个:
let GetPieceAt piece playerType file rank = {
piece = {piece = piece; playerType = playerType} ;
place = { file= file; rank = rank}
}
let GetPieceOnRank piece rank playerType files () =
[for f in files -> GetPieceAt piece playerType f rank]
Run Code Online (Sandbox Code Playgroud)
第一个函数的类型正确:piece - > playerType - > file - > rank - > PieceAt
但是,第二个函数有:piece - > rank - > playerType - > seq - > unit - > PieceAt list
这个单位来自哪里?我调用它的另一个函数是获取单位 - >单位... - > {正确的返回值},这就是错误.
我究竟做错了什么?
unit在F#中(),您的GetPieceOnRank定义中的空括号表示.
与C#不同,函数不需要调用括号.也许这些括号的放置是一个错误,因为它们不是必需的,只是删除它们仍然允许代码编译.
let GetPieceOnRank piece rank playerType files =
[for f in files -> GetPieceAt piece playerType f rank]
Run Code Online (Sandbox Code Playgroud)