Intsのリストを2つの新しいリストを含むタプルに分割する方法を理解することが難しいです。最初のリストから始まるすべての要素が最初のリストに入り、 2番目の要素の他の要素。Haskell:リストを2つの新しいリストのタプルに分割する
ので、同じように:
:私は(ガード付き)を再帰的にこれを達成しようと、単一の引数はxsを使用してい
split [] = ([],[])
split [1] = ([1],[])
split [1,2] = ([1],[2])
split [1,2,3] = ([1,3],[2])
split [1,2,3,4] = ([1,3],[2,4])
これは、取得エラーメッセージを保持し、私のアプローチです
split :: [Int] -> ([Int],[Int])
split xs | length(xs) == 0 = ([],[])
| length(xs) == 1 = (xs !! 0 : [],[])
| length(xs) == 2 = (xs !! 0 : [], xs !! 1 : [])
| otherwise = (fst ++ xs !! 0, snd ++ xs !! 1) ++ split(drop 2 xs))
は皆さんありがとうございました! – Shabu
答えの1つを受け入れる必要があります。 –