在Haskell中初始化布尔列表的简便方法

时间:2015-08-03 14:16:47

标签: list haskell

我意识到有一种简单的方法可以通过使用range()来初始化一个整数数组,甚至可以通过例如[1..10]。

是否有一种简单的方法来初始化[Bool]? (鉴于我事先知道了数组的大小)。 - 简单来说,我的意思是没有定义函数只是为了执行init ...

2 个答案:

答案 0 :(得分:6)

答案取决于你想要初始化它的内容,如果它只是一个包含所有相同值的列表,那么你可以使用replicate

replicate 5 True -- [True,True,True,True,True]

答案 1 :(得分:6)

与Simon Gibbons提出的解决方案一样,对于固定大小的阵列,其中所有元素都是相同的

replicate 5 True       -- [True,True,True,True,True]

您还可以使用列表推导来定义更复杂的列表,例如,获取可以执行的交替False / True列表

[even x | x <- [1..6]] -- [False,True,False,True,False,True]