库:“ vector-0.12.0.2:高效数组”

时间:2019-01-11 09:21:43

标签: haskell

我在研究创建Minesweeper程序的解决方案时遇到了以下语句:

data Board = Board (V.Vector Char) Int deriving Show

我的问题是:将V.Vector Char放在圆括号内的数据构造函数旁边是什么意思?我们是否创建数组?什么类型的为用Haskell编写的棋盘游戏创建棋盘的推荐方法是什么?

1 个答案:

答案 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

因此,您应该能够通过提供BoardV.Vector Char来创建Int值。