如何使用haskell中的any函数?
我写过这样的东西如何使用haskell中的any函数?,haskell,Haskell,我写过这样的东西 gameOver :: Board -> Bool gameOver testboard = any checksingle ( nub (rows testboard)) where checksingle :: [Cell] -> Bool checksingle [a] | [a] == [Empty] = False | otherwise = True checksingle _ = Fa
gameOver :: Board -> Bool
gameOver testboard
= any checksingle ( nub (rows testboard))
where
checksingle :: [Cell] -> Bool
checksingle [a]
| [a] == [Empty] = False
| otherwise = True
checksingle _
= False
在这里,行将返回[[Cell]]
我试图做的是映射(nub到rows testboard),我测试并运行了它,结果仍然应该是[[Cell]]。然后我尝试应用Map checksingle(上面的列表),这样每个[Cell]都将应用于checksingle,最后我尝试查看是否有任何结果是真的。Haskero告诉我,True
elem
Map(checksingle.nub)(rows testboard)与任何checksingle(nub(rows testboard))相同,但这两个选项都不起作用。到底是什么问题/错误/。。。您收到了吗?我不清楚为什么要使用nub
,因为无论您是否检查唯一行,在这两种情况下。这些将返回相同的结果。(并且nub
比checkSingle
每个元素的成本要高得多)