On Tue, Oct 20, 2009 at 9:27 AM, satorisanitarium <[email protected]> wrote: > >> Now back to your original problem. Can you write a function g such that >> g [1,2,3,2,4,1,6,3,6,2,3,5,2,5,2,1,6,4] >> returns >> ([1,2,3],[2,4,1,6,3,6,2,3,5,2,5,2,1,6,4]) >> > I know the diference between x and [x], my problem lies in going from > [1,2,3,4,5,6,7] to [[1,2,3,4],[5,6,7]], I don't know how to write code > that would group some elements together.
Here is an implementation of splitAt from the prelude (though it is not hte implementation given in the prelude) for guidance. For example, splitAt 3 ['a','b','c','d','e','f'] = (['a','b','c'],['d','e','f']) splitAt :: Int -> [a] -> ([a],[a]) splitAt 0 xs = ([], xs) splitAt n [] = ([],[]) splitAt n (x:xs) = let (rfst, rsnd) = splitAt (n-1) xs in (x:rfst, rsnd) See if you can use that pattern to make the function that splits at a particular element (as opposed to index). Luke _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
