我坐在有两个家伙在Haskell的项目,我们有相当多的用下面的代码烦:具有带哈斯克尔(generateTrees)匹配型
我尝试给你所有必要的信息:
从模块Types.hs:
class Game g s | g -> s where
findPossibleMoves :: Player -> g -> [(s,g)]
identifyWinner :: g -> Player -> Maybe Player
data Player = Player1 | Player2 deriving (Eq,Ord)
,这里是我们要实现的代码:
generateGameTree :: Game g s => g -> Player -> Tree (g,Player) s
generateGameTree g p = ([ Node ((snd x),p) [] | x <- (findPossibleMoves p g)])
所以我们试图让这个东西编译,但它不会工作。要知道一棵树的模样因此多数民众赞成的定义很可能是重要的:
data Tree v e = Node v [(e,Tree v e)] deriving (Show,Eq,Ord)
我们媒体链接了解,该函数的返回类型和我们的返回类型不匹配,但必须有另一个错误在此。
我们希望得到任何帮助,在此先感谢
非常感谢您,我们已经找到了解决方案! –