我是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]
第一个函数的类型正确:piece-> playerType-> file-> rank-> PieceAt
但是,第二个功能有:片段->等级-> playerType-> seq->单位-> PieceAt列表
这个单位来自哪里?我调用此函数的其他函数正在获取单位->单位...-> {正确的返回值},这正在产生错误。
我究竟做错了什么?
最佳答案
F#中的unit
由()
定义中的空括号GetPieceOnRank
表示。
与C#不同,函数不需要调用括号。也许将这些括号的位置放错了,因为不需要它们了,只需删除它们仍然可以编译代码。
let GetPieceOnRank piece rank playerType files =
[for f in files -> GetPieceAt piece playerType f rank]
关于function - 功能定义包含单元F#,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46000960/