Yeah the key part is not whether something is a _stream_ (functions in Stream module tend to return %Stream{} or fun/2) but whether something is an _enumerable_. There’s no benefit turning, say, list into a stream, list is already _enumerable_!
> On 24 Jul 2024, at 09:38, Robert Dober <robert.do...@gmail.com> wrote: > > Oh I think I get it > Why create just a wrapper around an enum with `Stream.map(...;&(&1))` when > you can call all the transformations on the enum anyway. > In other words instead of `x|>Stream.new|>Stream.something|>... I just get > rid of the Stream.new > > Correct? > > On Wednesday, July 24, 2024 at 9:22:45 AM UTC+2 Robert Dober wrote: >> I am afraid I do not get the message José, did you mean that >> `Stream.map(enum, &(&1))` is an antipattern? >> Well my use case is very simple, I have a list and I want to make it lazy, >> why should I not use an idiom like the above? >> IIUC I should not use Stream at all for this, right? But is there a >> different way? There is no Enum.to_stream for example. >> >> Hmm maybe Stream and List do not play in the same class as Stream does not >> implement Collectable either? >> >> Can you help me out with this, please >> Robert >> >> On Wednesday, July 24, 2024 at 12:17:22 AM UTC+2 José Valim wrote: >>> While some functions in the Stream module may return the `Stream` struct, >>> you must never explicitly check for the `Stream` struct, as streams >>> may come in several shapes, such as `IO.Stream`, `File.Stream`, or >>> even `Range`s. >>> >>> The functions in the Stream module only guarantee to return enumerables >>> and their implementation (structs, anonymous functions, etc) may >>> change at any time. For example, a function that returns an anonymous >>> function today may return a struct in future releases. >>> >>> Instead of checking for a particular type, you must instead write >>> assertive code that assumes you have an enumerable, using the functions >>> in the `Enume` or `Stream` module accordingly. > > > -- > You received this message because you are subscribed to the Google Groups > "elixir-lang-core" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to elixir-lang-core+unsubscr...@googlegroups.com > <mailto:elixir-lang-core+unsubscr...@googlegroups.com>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/elixir-lang-core/04f579fc-4cd3-4747-81e2-b022e7420546n%40googlegroups.com > > <https://groups.google.com/d/msgid/elixir-lang-core/04f579fc-4cd3-4747-81e2-b022e7420546n%40googlegroups.com?utm_medium=email&utm_source=footer>. -- You received this message because you are subscribed to the Google Groups "elixir-lang-core" group. To unsubscribe from this group and stop receiving emails from it, send an email to elixir-lang-core+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/1C819B6C-BFB2-411D-B1D6-11C163381BC9%40wojtekmach.pl.