Extra utilities on lists.
innerJoin : List b -> (a -> b -> Basics.Bool) -> List a -> List ( a, b )
Simulates a SQL inner-join.
dataSetA =
[ ( 1, "a" ), ( 2, "b" ) ]
dataSetB =
[ ( 3, "C" ), ( 2, "B" ) ]
dataSetA
|> innerJoin dataSetB
(\a b ->
Tuple.first a == Tuple.first b
) ==
[ ( ( 2, "b" ), ( 2, "B" ) )
]
leftJoin : List b -> (a -> b -> Basics.Bool) -> List a -> List ( a, Maybe b )
Simulates a SQL left-outer-join.
dataSetA =
[ ( 1, "a" ), ( 2, "b" ) ]
dataSetB =
[ ( 3, "C" ), ( 2, "B" ) ]
dataSetA
|> leftJoin dataSetB
(\a b ->
Tuple.first a == Tuple.first b
) ==
[ ( ( 1, "a" ), Nothing )
, ( ( 2, "b" ), Just ( 2, "B" ) )
]