是否可以在列表推导中添加多个元素?

时间:2016-05-01 09:11:51

标签: haskell list-comprehension

我想知道是否可以在列表理解中将多个元素添加到列表中。

例如,如果我想要一个由数字1到10组成的列表,我可以写:

[k | k <- [1..10]]

但是,还有一种方法可以通过始终在同一步骤中添加k k+1来实现此目的,并且只采用奇数{{1} }?以下代码无效,但可能更好地解释了我正在尝试做的事情:

k

目前,最接近这一点(我所知道的)如下:

[k, k+1 | k <- [1, 3..10]]

1 个答案:

答案 0 :(得分:7)

有一些替代品,其中没有一种明显优于你的建议。

$(document).on('click', '.btn', function (e) {
   $(".btn").removeClass("active");
   $(this).addClass("active")
});

请注意,concat [ [k, k+1] | k <- [1, 3 .. 10] ] join [ [k, k+1] | k <- [1, 3 .. 10] ] [ x | k <- [1, 3 .. 10], x <- [k,k+1] ] [1, 3 .. 10] >>= (\x -> [x, x + 1]) do x <- [1, 3 .. 10] ; [x, x+1] ,如您的解决方案中所示,如果找到空的列表列表,将使用运行时错误中止该程序。上述替代方案没有这样的问题。