使用庫函數,定義一個函數halve :: [a]→([a],[a]) 將一個偶數長度的列表分成兩半。例如:haskell的一半功能
> halve [1, 2, 3, 4, 5, 6]
([1, 2, 3], [4, 5, 6])
到目前爲止我有什麼是
halve :: [a] -> ([a],[a])
halve = (\xs -> case xs of
[] -> ([],[])
xs -> take ((length xs) `div` 2) xs)
,它是錯誤的,因爲XS - >取((長x)div
2)僅XS顯示列表的前半部分..請幫助我繼續下去,以便它顯示列表的後半部分。
http://hackage.haskell.org/package/base-4.8.1.0/docs/Prelude.html#v:splitAt – interjay
它得到正確上半年'take',但也許你需要它的對手'drop'。 – Mephy
相關:http://stackoverflow.com/questions/27090347/haskell-novice-trouble-with-splitting-a-list-in-half – Jubobs