我目前正在为十月份的考试学习,并遇到了一个似乎无法找到好的解决方案的问题。
我想要读取一个整数元组列表,例如:[(1,2),(3,4),(5,6),..],并希望列表推导式返回[1,2,3,4,5,6,..]。
以下代码可以正常工作,但我希望它在一个列表推导式中完成。
func :: [(Integer, Integer)] -> [Integer]
func xs = concat [ [x,y] | (x,y) <- xs ]
我该怎么做才能让这个工作起来?
我目前正在为十月份的考试学习,并遇到了一个似乎无法找到好的解决方案的问题。
我想要读取一个整数元组列表,例如:[(1,2),(3,4),(5,6),..],并希望列表推导式返回[1,2,3,4,5,6,..]。
以下代码可以正常工作,但我希望它在一个列表推导式中完成。
func :: [(Integer, Integer)] -> [Integer]
func xs = concat [ [x,y] | (x,y) <- xs ]
您可以在列表推导式的右侧使用额外迭代,例如:
func :: [(a, a)] -> [a]
func xs = [ xi | (x1, x2) <- xs, <b>xi <- [x1, x2]</b> ]