2015-08-03 2 views
0

Я понял, что есть простой способ инициализировать целочисленный массив, используя range(), или даже просто говоря, например. [1..10].Простой способ инициализировать логический список в Haskell

Есть ли простой способ инициализировать [Bool]? (учитывая, что я заранее знаю размер массива). - Легко я имею в виду, не определяя функцию только для выполнения инициализации ...

+2

Вот список, а не массив. –

+4

BTW, «initialize»/«init», вероятно, не лучшее слово. Как только переменная определяется как некоторое значение, она не изменит ее значение в чисто функциональном программировании. В самом деле, я бы использовал «define». – chi

+1

Я согласен с chi. Сначала я подумал, что вы указали, что делает операция 'init' (функция). – MasterMastic

ответ

6

Ответ зависит от того, что вы хотите инициализировать, если это всего лишь список всех одинаковых значений, то вы могли бы просто использовать replicate

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

Как это решение, предложенное Саймон Гиббонс, для массива фиксированного размера, где все элементы идентичны

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

вы также можете использовать списковых определить более сложные списки, например, для получения переменного False/True список вы могли бы сделать

[even x | x <- [1..6]] -- [False,True,False,True,False,True] 
Смежные вопросы