I found a discussion from May that has many thoughts on this.
https://groups.google.com/d/msg/elm-discuss/u-6aCwaJezo/fu-HMPy6CQAJ
My actual use case is that I'm looking into implementing a 0.17-compatible
local storage library (which I'll post about in another thread), and would
love to be able to write
eventsForKey : String -> Sub (Maybe String)
eventsForKey key =
events
|> Sub.filterMap (\x -> if x.key == key then Just x.newValue else
Nothing)
which is implemented in terms of
events : Sub (Maybe String)
because I think it's a cleaner API than
eventsForKey : String -> (Maybe String -> msg) -> msg -> Sub msg
eventsForKey makeMsg noOp =
events
|> Sub.map (\x -> if x.key == key then makeMsg key.newValue else
noOp)
On Monday, October 31, 2016 at 1:31:08 AM UTC-4, David Andrews wrote:
>
> Right now, the Platform.Sub library has a map function which allows for
> transforming subscriptions. However, the initial and modified
> subscriptions will always produce the same number of messages. Are there
> plans to add filterMap and/or concatMap methods to Platform.Sub so that
> the number of messages can be modified?
>
> A simple use case (not that you would actually do this) would be
> Time.every Time.second identity
> |> Sub.filterMap (\x -> if floor x % 2 == 0 then Just x else Nothing)
> to implement
> Time.every (2 * Time.second)
>
>
--
You received this message because you are subscribed to the Google Groups "Elm
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.