[erlang-questions] Any wisdom to offer on "tagged return values"

Ulf Wiger <>
Wed May 6 17:37:08 CEST 2009


Joe Armstrong wrote:
> 
> I would always prioritize clarity over efficiency, unless your code
> just has to be blindingly fast - so you might break this rule if you
> want to write faster but less clear code.

Luckily in this case, using fetch() when appropriate results
in code that is both faster and clearer.  ;-)

One can achive reasonably similar clarity by using

{ok, Value} = dict:find(...)

But doing so, means opting out of composition
(at least /convenient/ composition.)

Yesterday, as I was trying to figure out why edoc
crashed when trying to write a processed file to disk,
I wrote the following in the shell:

31> string:chr(tl(v(23)),8211).
1240
32> string:substr(tl(v(23)),1230,20).
[45,75,101,121,32,112,97,105,114,32,8211,32,97,32,116,117,
  112,108,101,32]
33> [45,75,101,121,32,112,97,105,114,32].
"-Key pair "

(The character following looked like ~ in emacs, but
became ASCII 8211 in the output, which io:put_chars() had
issues with.)

Not exactly revolutionary, nor especially elegant, but
it's extremely convenient to be able to chain functions
together without having to insert unwrapping code.

BR,
Ulf W

-- 
Ulf Wiger
CTO, Erlang Training & Consulting Ltd
http://www.erlang-consulting.com



More information about the erlang-questions mailing list