我无法理解haskell数组。
例如,我想在变量bsd
中创建和存储一个数组,但如果我想要一个大小为10的类型和Bool类型的数组,那么....
中会有什么。
bsd :: Array Int Bool --is this correct?
bsd = .... --what comes here?
请帮助我理解......
如果我想更改bsd
中的值,例如,该怎么办?索引5是什么语法
如何在bsd
??
请帮助
答案 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)]