finos/morphir-elm/18.1.0

NOTE: the latest version is 22.0.2

Formerly Morgan-Stanley/morphir-elm. Search finds this package by either name.

Morphir.SDK.List

Extra utilities on lists.

innerJoin : List b -> (a -> b -> 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 -> 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" ) )
        ]
rightJoin : List b -> (a -> b -> Bool) -> List a -> List ( Maybe a, b )

Simulates a SQL right-outer-join.

dataSetA =
    [ ( 1, "a" ), ( 2, "b" ) ]


dataSetB =
    [ ( 3, "C" ), ( 2, "B" ) ]


dataSetA
    |> rightJoin dataSetB
        (\a b ->
           Tuple.first a == Tuple.first b
        ) ==
        [ ( Just ( 2, "b" ), ( 2, "B" ) )
        , ( Nothing, ( 3, "C" ) )
        ]