我是haskell的新手,需要编写一个名为minimax的函数,用于在函数(一块木板,Rose Board)和一个转向它的玩家的游戏树上进行赋值。我很遗憾地得到了一个
" te约束中的非类型变量参数:Num(Rose a)(使用FlexibleContext来允许这个)"
我尝试过不同的方式,但我一直遇到有关FlexibleContext的问题,我无法弄清楚FlexContext的确切方式。
minimax :: Player -> Rose Board -> Rose Int
minimax player roseBoard = minimax' player roseBoard
where minimax' p (board :> rest) | null rest = case hasWinner board of
Just n -> if n == p then 1 else -1
Nothing -> 0
| otherwise = 0 :> [(minimax' (nextPlayer p) (onthaak rest))]
where onthaak [a] = a