如何更改元组列表,例如
[(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) ]
答案 0 :(得分:3)
要使用列表推导来展平任何列表,表单始终是相同的。一次一个地从源中获取多个元素。
列表推导,就像函数一样,可以指定源,元组或列表的精确模式。
你的功能不是一次一个的倍数形式,所以纠正它永远不会给你你想要的东西。它至少需要使用concat
来连接输出。
这是展平列表理解的形式
[ n |(a,b)<-[(1,2),(3,4),(5,6)],n <-[a,b]]
a
和b
一次一个地n
采取,以展平。