Advertisement
Guest User

Untitled

a guest
Dec 14th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. groupElems :: Eq a => [a] -> [[a]]
  2. groupElems [] = []
  3. groupElems xs = groupElemsHelper xs [] []
  4.   where
  5.     groupElemsHelper [x] curlist res
  6.       | null curlist = reverse ([x] : res)
  7.       | x == last curlist = reverse (curlist : res)
  8.       | otherwise = reverse ([x] : res)
  9.     groupElemsHelper (prev:xs) curlist res
  10.       | null curlist = groupElemsHelper (prev:xs) (prev : curlist) res
  11.       | head xs == prev = groupElemsHelper xs (head xs : curlist) res
  12.       | otherwise = groupElemsHelper xs [] (curlist : res)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement