这个Haskell Data.Maybe函数有什么作用?

use*_*332 4 haskell

我想问一下你是否知道这个功能是做什么的:

hasUnassigned :: [Int] -> Bool
hasUnassigned board = isJust $ elemIndex 0 board
Run Code Online (Sandbox Code Playgroud)

我在网上发现了这个功能,我打算用它来帮助绘制数独游戏解决方案.

请问您能告诉我它是如何运作的吗?

Seb*_*edl 11

elemIndex在第二个参数中搜索第一个参数,这是一个列表.如果找到元素,则返回Maybe Int- Just索引,Nothing否则返回.

isJust如果Maybe值为a Just,则返回true;如果值为a ,则返回false Nothing.

换句话说,这是一种非常尴尬的测试是否board包含0的方法.更好的方法是

hasUnassigned board = 0 `elem` board
Run Code Online (Sandbox Code Playgroud)