小编Hak*_*Alp的帖子

Haskell 中具有挑战性的列表理解问题

我正在尝试使用列表理解来制作这样的嵌套列表:

[[1,2,3],[4,5,6],[7,8,9]] 
Run Code Online (Sandbox Code Playgroud)

我编写了类似的代码:

take 3 [take 3 [i .. ] | i <- [1 ..]]
Run Code Online (Sandbox Code Playgroud)

但它给出了这个:

[[1,2,3],[2,3,4],[3,4,5]]
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它像上面的那样?

haskell list-comprehension

1
推荐指数
1
解决办法
86
查看次数

列表理解 Haskell 中的算术序列问题

我写了一个这样的函数:

\n\n
constGrid :: a -> [[a]]\nconstGrid c = take 3 [take 3 [i,i ..] | i <- [c,c ..]]\n
Run Code Online (Sandbox Code Playgroud)\n\n

我用以下方式调用它:

\n\n
print(constGrid \'a\')\n
Run Code Online (Sandbox Code Playgroud)\n\n

它应该打印

\n\n
["aaa","aaa","aaa"]\n
Run Code Online (Sandbox Code Playgroud)\n\n

或任何整数或布尔值替换\'a\'

\n\n

当我评论第一行时它可以工作,但是当我打开它时,它会给出如下错误:

\n\n
[1 of 1] Compiling Main             ( test.hs, test.o )\n\ntest.hs:17:46: error:\n\xe2\x80\xa2 No instance for (Enum a)\n    arising from the arithmetic sequence \xe2\x80\x98c, c .. \xe2\x80\x99\n  Possible fix:\n    add (Enum a) to the context of\n      the type signature for:\n        constGrid :: a -> [[a]]\n\xe2\x80\xa2 In the …
Run Code Online (Sandbox Code Playgroud)

haskell list-comprehension

1
推荐指数
1
解决办法
283
查看次数

标签 统计

haskell ×2

list-comprehension ×2