Sha256: 693f7198fedb9f4224e8ae39c96bed9e6c0d2d870b8339d674087e6a24f8ad05

Contents?: true

Size: 965 Bytes

Versions: 330

Compression:

Stored size: 965 Bytes

Contents

module ListOps exposing (..)


length : List a -> Int
length list =
    foldl (\_ acc -> 1 + acc) 0 list


reverse : List a -> List a
reverse list =
    foldl (::) [] list


foldl : (a -> b -> b) -> b -> List a -> b
foldl f acc list =
    case list of
        [] ->
            acc

        head :: tail ->
            foldl f (f head acc) tail


foldr : (a -> b -> b) -> b -> List a -> b
foldr f acc list =
    case list of
        [] ->
            acc

        head :: tail ->
            f head (foldr f acc tail)


map : (a -> b) -> List a -> List b
map f list =
    foldr (\x acc -> f x :: acc) [] list


filter : (a -> Bool) -> List a -> List a
filter f list =
    foldr
        (\x acc ->
            if f x then
                x :: acc
            else
                acc
        )
        []
        list


append : List a -> List a -> List a
append xs ys =
    foldr (::) ys xs


concat : List (List a) -> List a
concat list =
    foldr append [] list

Version data entries

330 entries across 330 versions & 1 rubygems

Version Path
trackler-2.2.1.113 tracks/elm/exercises/list-ops/ListOps.example.elm
trackler-2.2.1.111 tracks/elm/exercises/list-ops/ListOps.example.elm
trackler-2.2.1.110 tracks/elm/exercises/list-ops/ListOps.example.elm
trackler-2.2.1.109 tracks/elm/exercises/list-ops/ListOps.example.elm
trackler-2.2.1.108 tracks/elm/exercises/list-ops/ListOps.example.elm
trackler-2.2.1.107 tracks/elm/exercises/list-ops/ListOps.example.elm
trackler-2.2.1.106 tracks/elm/exercises/list-ops/ListOps.example.elm
trackler-2.2.1.105 tracks/elm/exercises/list-ops/ListOps.example.elm
trackler-2.2.1.104 tracks/elm/exercises/list-ops/ListOps.example.elm
trackler-2.2.1.103 tracks/elm/exercises/list-ops/ListOps.example.elm
trackler-2.2.1.102 tracks/elm/exercises/list-ops/ListOps.example.elm
trackler-2.2.1.101 tracks/elm/exercises/list-ops/ListOps.example.elm
trackler-2.2.1.100 tracks/elm/exercises/list-ops/ListOps.example.elm
trackler-2.2.1.99 tracks/elm/exercises/list-ops/ListOps.example.elm
trackler-2.2.1.98 tracks/elm/exercises/list-ops/ListOps.example.elm
trackler-2.2.1.97 tracks/elm/exercises/list-ops/ListOps.example.elm
trackler-2.2.1.96 tracks/elm/exercises/list-ops/ListOps.example.elm
trackler-2.2.1.95 tracks/elm/exercises/list-ops/ListOps.example.elm
trackler-2.2.1.94 tracks/elm/exercises/list-ops/ListOps.example.elm
trackler-2.2.1.93 tracks/elm/exercises/list-ops/ListOps.example.elm