Haskell 是否可以将IO类型转换为任意类型?
我正在Haskell中构建一个数独解算器,我有两个功能:Haskell 是否可以将IO类型转换为任意类型?,haskell,io,Haskell,Io,我正在Haskell中构建一个数独解算器,我有两个功能: genProblemm :: Node -> IO Node newSudoku :: IO Node 用于生成数独谜题。我想使用QuickCheck库来测试我的解算器。是否可以使用这些函数使节点成为的实例?我找不到一般的方法 我只了解了类型: instance Arbitrary Node where arbitrary = 。。。但是我不知道如何使用我现有的函数编写任意的,它们都是IO类型 编辑: Node = (
genProblemm :: Node -> IO Node
newSudoku :: IO Node
用于生成数独谜题。我想使用QuickCheck
库来测试我的解算器。是否可以使用这些函数使节点
成为的实例?我找不到一般的方法
我只了解了类型:
instance Arbitrary Node where
arbitrary =
。。。但是我不知道如何使用我现有的函数编写任意的,它们都是IO
类型
编辑:
Node = (Sudoku, [(Column, Row, [Int])])
type Sudoku = (Row,Column) -> Int
一个节点就是整个数独。什么是“任意”
?我们是在说“快速检查”
?还有,什么是“节点”?它是拼图中的单个单元格吗?这是一个完整的谜题吗?仲裁
你缺乏精确性让我感到不安。除非你的算法真的做IO,我可能怀疑它没有——它只是使用随机数,对吧没有必要把它放在那里。从IO中取出QuickCheck的那一刻起,它就拥有大多数基本类型和随机库的实例。