Я пытаюсь создать функцию, которая составляет список целых чисел, вы можете протянуть руку?
groupUp :: [Int] -> [[Int]]
пример:
groupUp [1,2,2,3,3,3] == [[1],[2,2],[3,3,3]]
Самое близкое, на что я мог прийти:
groupUp [] = [[]]
groupUp (x:[]) = []
groupUp(x:y:xs)
| x==y = [x,y] : groupUp (xs)
| otherwise = [x] : groupUp (y:xs)
Но это ограничивает список группой максимум из 2 (пар) и не более. Что я должен изменить?
Редактировать: это работает, спасибо за помощь!
groupUp xs= helper 0 xs
where helper _ []=[]
helper i xs= takeWhile (==(xs!!i))xs: helper (i) (dropWhile (==(xs!!i))xs)