Hello everybody.

IO.inspect/2 is one of the most useful debugging tools, and I use it extremely 
often. The ability to stick `|> IO.inspect` in pretty much every part of the 
program is really powerful. Unfortunately when having multiple such calls it 
becomes hard to distinguish which output matches which call.
The usual way to solve this is by inspecting something like {tag_name, value} 
instead of just value, but this has the unfortunate effect of breaking the 
pipe-ability and forces you to assign things into specific variables.

I propose we add an option to IO.inspect called tag. It would simply print the 
tag before the output. How would it look like?

IO.inspect([1, 2, 3], tag: “my list”)

would print:

my list => [1, 2, 3]

The return value would obviously not change, so it would still be a list [1, 2, 
3] in that case. This still allows IO.inspect to be pipe-able and gives us 
easily distinguishable output at the same time. I think this would streamline 
the debugging experience and make IO.inspect even more powerful.

Michał.

-- 
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/E807B41E-B89A-43CD-B55D-60A742B55BBC%40muskala.eu.
For more options, visit https://groups.google.com/d/optout.

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to