将splitAt n列表分配给haskell中的pair(x,y)

时间:2018-10-23 04:13:53

标签: haskell

我有一条语句[splitAt n list | n <- [1..((length list)-1)],当它在[1,2,3,4]上运行时,给出[([1],[2,3,4]),([1,2],[3,4]),([1,2,3],[4])] 。我想将每对分配给变量x和y

示例:

x=[1]
y=[2,3,4]
x=[1,2]
y=[3,4] 
etc

如何实现?

1 个答案:

答案 0 :(得分:2)

您可以在列表理解的splitAt内进行模式匹配(在这种情况下,是let返回的对),因此您可以

[ doSomethingWith x y | n <- [1..((length list)-1), let (x, y) = splitAt n list ]