非常基本的,但我發現這個問題令人沮喪。我想組列表連續元素:分組連續複製一個列表?
myList = [1,2,3,4,4,4,5]
成爲
myList = [[1],[2],[3],[4,4,4],[5]]
這是用foldr用蓄電池我嘗試:
print $ foldr (\ el acc -> if el /= head (head acc) then el ++ (head acc) else acc) [['a']] myList
我不明白爲什麼我收到以下錯誤:
Couldn't match expected type ‘[a0]’ with actual type ‘Int’
In the expression: 'a'
In the expression: ['a']
In the second argument of ‘foldr’, namely ‘[['a']]’
任何建議都會很棒!
'EL ++頭xs'具有輸入'[α] '但累加器的類型爲[[a]]'。你不能在'if'語句中返回不同的類型。 – ThreeFx
你不知道['Data.List.group'](http://hackage.haskell.org/package/base-4.9.0.0/docs/Data-List.html#v:group)? – Jubobs