首页 > 解决方案 > 将 splitAt n 列表分配给 haskell 中的 pair(x,y)

问题描述

我有一个语句[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

如何做到这一点?

标签: haskell

解决方案


您可以在列表推导中的 asplitAt内进行模式匹配(在这种情况下,在由返回的对上)let,所以您可以这样做

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

推荐阅读