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