algorithm - Haskell:f n 返回 [1..n] 中 n 个元素列表的列表

标签 algorithm haskell

我需要一个函数 f::(Integral n) => n -> [[n]]

返回的列表应包含所有长度为 n 的列表,其中所有元素都来自 [1..n]

示例:

f 2 = [[1,1],[1,2],[2,1],[2,2]]

对于常量 n,这是一个简单的问题:

f2 = [[a, b] | a <- [1..2], b <- [1..2]]
f3 = [[a, b, c] | a <- [1..3], b <- [1..3], c <- [1..3]]
f4 = [[a, b, c, d] | a <- [1..4], b <- [1..4], c <- [1..4], d <- [1..4]]

最佳答案

一个解决方案可以是

f n = sequence . replicate n $ [1..n]

注意 f 10 将有 10^10 个元素

关于algorithm - Haskell:f n 返回 [1..n] 中 n 个元素列表的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48081039/

相关文章:

haskell - 我如何强制 Parsec 返回错误?

python - 选择更大的球

algorithm - 亚线性时间内的二维数组搜索

algorithm - 如何实现菱形方 block 算法?

haskell - 如何在表达式中途使用 Haskell 类型签名?

haskell - Haskell 中的简单文本菜单

algorithm - Bioperl 程序执行错误

判断音频是否为音乐的算法

haskell - 定义应用实例的问题

Haskell + StablePtr