Haskell 在哈斯克尔。如何将拆分列表分解为元组

Haskell 在哈斯克尔。如何将拆分列表分解为元组,haskell,tuples,Haskell,Tuples,splitList n xs:根据提供的索引n将列表xs拆分为两个列表的元组 示例: splitList 3 [1..5] ⇒ ([1,2,3], [4,5]) splitList 3 [1..] ⇒ ([1,2,3], [4..]) splitList 9 [] ⇒ ([], []) 如何解决它?这是一种可能的解决方案: splitList :: Int -> [a] -> ([a], [a]) splitList _ [] = ([], []) splitList n xs =

splitList n xs
:根据提供的索引
n
将列表
xs
拆分为两个列表的元组

示例:

splitList 3 [1..5] ⇒ ([1,2,3], [4,5])
splitList 3 [1..] ⇒ ([1,2,3], [4..])
splitList 9 [] ⇒ ([], [])

如何解决它?

这是一种可能的解决方案:

splitList :: Int -> [a] -> ([a], [a])
splitList _ [] = ([], [])
splitList n xs = (take n xs, drop n xs)

您正在查找
数据.List.splitAt
。为什么在这里破坏您自己的问题?
splitAt :: Int -> [a] -> ([a], [a])

λ> splitAt 3 [1..5]
([1,2,3],[4,5])