6
 let GetVal (i,isMin,al, be)= 
        let b = new Board(board) 
        if b.SetBoardBool(i) then this.MinMaxAlphaBeta(b, isMin, al, be)
        else -2

    let valList = seq{ 
            for i =0 to 8 do 
                yield (GetVal i (not isMin) alphaF betaF ,  not isMin)
                } 

我收到 F# 错误消息:此值不是函数,无法应用。

valList 是 int 和 bool 元组的序列,GetVal 采用 int bool int int 并返回 int。其中 alphaF betaF 是可变变量。

4

2 回答 2

4

或者您可以更改 GetVal 的签名以不传递元组——如下所示:

let GetVal i isMin al be =

i、 isMin、al 和 be 称为柯里化参数。您可以在“参数的部分应用”主题下找到更多详细信息我会发布一个直接链接,但似乎没有。

于 2013-10-06T19:07:40.823 回答
2

您的GetVal函数使用元组参数(a,b,c,d),而您使用 curried 参数调用它a b c d

像这样的东西应该工作

yield (GetVal (i, (not isMin), alphaF, betaF) ,  not isMin)
于 2013-10-05T08:07:02.767 回答