Haskell 拆分第一个元素相同的元组数组
Haskell split tuple array where first elements are the same
我在 Haskell 中有一个列表,其形式类似于
[([], "str1"), ([], "str2"), ([1], "ser1")]
我想把它分成单独的二元组列表,其中每个元组的第一个元素是相同的,就像这样
[([], "str1"), ([], "str2")]
[([1], "ser1")]
我一直在关注 Data.List.Split
的 splitWhen
函数,但我一直无法让 ghc
接受它的谓词,因为我确实收集了它不是为了那样做。
我想你可以使用 groupBy
:
> import Data.List
> import Data.Function
> let xs = [([], "str1"), ([], "str2"), ([1], "ser1")]
> groupBy ((==) `on` fst) xs
[[([],"str1"),([],"str2")], [([1],"ser1")]]
我在 Haskell 中有一个列表,其形式类似于
[([], "str1"), ([], "str2"), ([1], "ser1")]
我想把它分成单独的二元组列表,其中每个元组的第一个元素是相同的,就像这样
[([], "str1"), ([], "str2")]
[([1], "ser1")]
我一直在关注 Data.List.Split
的 splitWhen
函数,但我一直无法让 ghc
接受它的谓词,因为我确实收集了它不是为了那样做。
我想你可以使用 groupBy
:
> import Data.List
> import Data.Function
> let xs = [([], "str1"), ([], "str2"), ([1], "ser1")]
> groupBy ((==) `on` fst) xs
[[([],"str1"),([],"str2")], [([1],"ser1")]]