blob: cc57d9fc4ea51acace5e846d6804d019c2894694 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
module Utils.List exposing
( groupBy
, mean
)
import Dict
groupBy : (a -> comparable) -> List a -> List (comparable, List a)
groupBy f xs =
let addItem item dict =
let groupItems = Dict.get (f item) dict |> Maybe.withDefault []
in Dict.insert (f item) (item :: groupItems) dict
in List.foldr addItem Dict.empty xs
|> Dict.toList
mean : List Int -> Int
mean xs = (List.sum xs) // (List.length xs)
|