[Haskell-beginners] Simplifying a 'split' function

Ben Sanders bwsanders at gmail.com
Wed Apr 29 15:00:59 EDT 2009

In looking through a merge sort implementation example, I came across this code:

split :: [a] -> [[a]]
split [] = []
split (x:xs) = [x] : split xs

I would have written the same code as

split :: [a] -> [[a]]
split = map (: [])

Is there any particular difference here (other than explicit
recursion)?  And is there any other nicer way to write it?

Ben Sanders

More information about the Beginners mailing list