2015-10-31 74 views
-4

splitList n xs:基于提供的索引n将列表xs拆分为两个列表的元组。在haskell中。如何将拆分列表解析为元组

例子:

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

如何解决这个问题呢?

+1

你要找的'Data.List.splitAt'。 – Bergi

+0

为什么你在这里破坏你自己的问题? – Carsten

回答

2

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

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

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

换句话说......'splitAt'已经存在 - 使用它! :) – vikingsteve

相关问题