我是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/

10-15 14:00