Hi Paul,

You got the bug backwards. The issue is that flat_map continues even after
take(1). Streams are by design meant to halt when items will no longer be
consumed.

I will investigate it soon.

PS: I will send an email that retires this mailing list later today.

On Saturday, September 10, 2016, Paul Balomiri <paulbalom...@gmail.com>
wrote:

> Hi,
>
> Today i banged my head against this one :
>
> iex(13)> [[true,false],[false],[true]]|>Stream.filter(fn([x|tail])->
> IO.inspect([filter: x]); x end) |>Stream.take(1) |> Stream.flat_map(fn(x)->
> IO.inspect([flat_map: x]); x end)  |> Enum.to_list()
> [filter: true]
> [flat_map: [true, false]]
> [filter: false]
> [filter: true]
> [true, false]
>
>
> taking away the culprit `Stream.flat_map` prevents the execution of
> `Stream.filter`'s function after the first element:
> [[true,false],[false],[true]]|>Stream.filter(fn([x|tail])->
> IO.inspect([filter: x]); x end) |>Stream.take(1) |> Enum.to_list()
> [filter: true]
> [[true, false]]
>
> It seems to me that this is a bug, but what i find more puzzling is that i
> do not know how `Stream.flat_map` has even any influence on the
> `Stream.filter` function.
>
> Did i miss here how `Stream.flat_map` should work or shall file a bug
> request?
>
> Paul
>
> --
> You received this message because you are subscribed to the Google Groups
> "elixir-lang-talk" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to elixir-lang-talk+unsubscr...@googlegroups.com
> <javascript:_e(%7B%7D,'cvml','elixir-lang-talk%2bunsubscr...@googlegroups.com');>
> .
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/elixir-lang-talk/ed614aa7-8c44-490d-90d4-
> 7ff563dc9dc9%40googlegroups.com
> <https://groups.google.com/d/msgid/elixir-lang-talk/ed614aa7-8c44-490d-90d4-7ff563dc9dc9%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>


-- 


*José Valim*
www.plataformatec.com.br
Skype: jv.ptec
Founder and Director of R&D

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elixir-lang-talk+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-talk/CAGnRm4KPJCXtO7gKCVRb5T4t1iOhrUzJoT6saz1OZ%3DXuqo3uzw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to