Haskell--搜索元素列表

Dev*_*Dev 0 search haskell

我想搜索一个Chars列表的列表, [[Char]]确定Char是否在列表中,返回true或false.到目前为止我有这个,

    scanBoard :: [[Char]] -> Bool
    scanBoard board 
        | 'r' `elem` board = True
        | 'i' `elem` board = True
        | otherwise = False
Run Code Online (Sandbox Code Playgroud)

谢谢!

ste*_*tew 6

我们可以创建一个谓词来测试一个角色:

\c -> (c == 'r') || (c == 'i')
Run Code Online (Sandbox Code Playgroud)

然后我们可以检查任何子列表是否有任何这样的char

scanBoard :: [[Char]] -> Bool
scanBoard = any $ any pred where
    pred = \c -> (c == 'r') || (c == 'i')
Run Code Online (Sandbox Code Playgroud)