无法理解haskell数组

时间:2017-09-25 02:26:24

标签: arrays haskell

我无法理解haskell数组。

例如,我想在变量bsd中创建和存储一个数组,但如果我想要一个大小为10的类型和Bool类型的数组,那么....中会有什么。

bsd :: Array Int Bool --is this correct?
bsd = .... --what comes here?

请帮助我理解......

如果我想更改bsd中的值,例如,该怎么办?索引5是什么语法

如何在bsd ??

中访问索引

请帮助

1 个答案:

答案 0 :(得分:2)

使用https://hackage.haskell.org/package/array-0.5.2.0/docs/Data-Array-IArray.html

这会从列表中构造一个bool数组。还有许多其他选项和功能可供使用

import Data.Array.IArray
let bsd = listArray (0, 3) [False, True, True, False] :: Array Int Bool
elems bsd -- [False,True,True,False]
bsd -- array (0,3) [(0,False),(1,True),(2,True),(3,False)]
bsd ! 0 -- Get element at index 0, which is False
-- Create new array with element 0 changed to True.
let bsd2 = bsd // [(0, True)]
bsd2 -- array (0,3) [(0,True),(1,True),(2,True),(3,False)]