我有一条语句[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
如何实现?
答案 0 :(得分:2)
您可以在列表理解的splitAt
内进行模式匹配(在这种情况下,是let
返回的对),因此您可以
[ doSomethingWith x y | n <- [1..((length list)-1), let (x, y) = splitAt n list ]