Or call it `map` as it's shorter and perfectly descriptive. I've made a few variants of this myself and I'd love it built into IO.inspect.
On Jan 12, 2018 16:31, "Greg Vaughn" <gvau...@gmail.com> wrote: > I like the original idea and would like to suggest another approach. What > if there were an additional Inspect.Opts of :transform? It then would > enable this sort of thing: > > ["thing1", "thing2"] > |> generate_more_things() > |> IO.inspect(transform: &length/1) > |> do_something_with_things() > > -Greg Vaughn > > > On Jan 12, 2018, at 5:18 PM, José Valim <jose.va...@gmail.com> wrote: > > > > Thanks for the proposal! > > > > Unfortunately that would make us unable to inspect functions themselves, > which is a valid argument to IO.inspect after all. > > > > Imagine the confusion of trying to inspect a pipeline that may emit an > anonymous function only to find it is being executed instead. > > > > > > > > José Valim > > www.plataformatec.com.br > > Founder and Director of R&D > > > > On Fri, Jan 12, 2018 at 10:59 PM, <mar...@lob.com> wrote: > > I often find myself wanting to inspect things in the middle of a chain > of pipes, but I don’t always want to inspect the return values as-is. > Sometimes I want to inspect sub-attributes or call functions on the return > values to inspect them. > > > > For example, imagine the contrived pipeline below. > > > > ["thing1", "thing2"] > > |> generate_more_things() > > |> do_something_with_things() > > > > If I want to know the length of the list returned by > generate_more_things/1, I would do this: > > > > ["thing1", "thing2"] > > |> generate_more_things() > > |> (fn things -> > > things |> length() |> IO.inspect() > > things > > end).() > > |> do_something_with_things() > > > > If IO.inspect can take a function as an argument, print the inspection > of the result of calling that function, but still return the un-altered > input, I could do this: > > > > ["thing1", "thing2"] > > |> generate_more_things() > > |> IO.inspect(fn things -> length(things) end) > > |> do_something_with_things() > > > > Or even: > > > > ["thing1", "thing2"] > > |> generate_more_things() > > |> IO.inspect(&length/1) > > |> do_something_with_things() > > > > I think this would aid during debugging and be a useful feature in the > standard library. I'd love to implement and contribute on this, but I > wanted to see if such a thing would be accepted before beginning work. > > > > Open to feedback! > > > > -- > > 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/4e2bfad0-b745-4059-8736- > 996e641c7bb2%40googlegroups.com. > > For more options, visit https://groups.google.com/d/optout. > > > > > > -- > > 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/CAGnRm4KAvw%2BwWnh7d60%3DvKEkuLvWfyoh4XuM9rbuxz_ > CaLg9%3DA%40mail.gmail.com. > > For more options, visit https://groups.google.com/d/optout. > > -- > 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/6CF01F3F-5848-4E19-BCA1-9D256824D6E0%40gmail.com. > For more options, visit https://groups.google.com/d/optout. > -- 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/CAJhqboH_tYYRPFWf8HuVJru5phmOmU7tK_PDWVca36mUfWhJ8Q%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.