Haskell" concat"仅使用列表推导的元组列表

时间:2018-05-06 10:27:01

标签: list haskell tuples list-comprehension

如何更改元组列表,例如

[(5,6),(7,8),(9,10)]

进入正常列表,如

[5,6,7,8,9,10]

通过列表推导而没有concat

我试过这个:

[ [y, z] | xs <- [(1,2),(3,4)], y <- fst(xs), z <- snd(xs) ]

1 个答案:

答案 0 :(得分:3)

要使用列表推导来展平任何列表,表单始终是相同的。一次一个地从源中获取多个元素。

列表推导,就像函数一样,可以指定源,元组或列表的精确模式。

你的功能不是一次一个的倍数形式,所以纠正它永远不会给你你想要的东西。它至少需要使用concat来连接输出。

这是展平列表理解的形式

[ n |(a,b)<-[(1,2),(3,4),(5,6)],n <-[a,b]]

ab一次一个地n采取,以展平。