我在研究创建Minesweeper程序的解决方案时遇到了以下语句:
data Board = Board (V.Vector Char) Int deriving Show
我的问题是:将V.Vector Char
放在圆括号内的数据构造函数旁边是什么意思?我们是否创建数组?什么类型的为用Haskell编写的棋盘游戏创建棋盘的推荐方法是什么?
答案 0 :(得分:2)
在该代码中,V
可能是qualified import,如下所示:
import qualified Data.Vector as V
这意味着每当您需要引用Data.Vector
中的类型或函数时,都必须提供V
前缀。
因此V.Vector
仅表示 Vector
库中的Data.Vector
类型。
V.Vector Char
的意思是Vector
的 Char
,因为Vector
是参数多态的。
最后,data Board = Board (V.Vector Char) Int
声明了一个名为Board
的类型,该类型具有一个数据构造函数,也称为Board
,它带有两个参数:
V.Vector Char
Int
因此,您应该能够通过提供Board
和V.Vector Char
来创建Int
值。