В Haskell Я пытаюсь создать функцию с набором Int -> [a] -> [[a]]
, которая генерирует список, такой как: [[0, 0], [0, 1], [1, 0], [1, 1]]
, где каждый элемент в меньших списках может принимать значение 1 или 0. Каждый из меньших списков имеет тот же размер, который в данном случае равен 2. Если размер меньших списков был 3, я ожидал бы получить вывод [[0,0,0], [0,0,1], [0,1,0], [1,0,0], [1,1,0], [0,1,1], [1,0,1], [1,1,1]]
Я смотрел на permutations
функция, но это не дает именно то, что я хочу. Я полагаю, что есть также функция variate
, но я не могу получить доступ к этой библиотеке.
Вместо точной функции (которая также будет полезна), каков будет процесс создания такого списка?