[erlang-questions] Versioned variable names

Paul Mineiro <>
Tue Jun 9 17:48:24 CEST 2009


I like the foldl way:

------
lists:foldl (fun (Fun, Acc) -> Fun (Acc) end,
             M0,
             [ fun (X) -> re:replace (X, "_", "-", [ { return, list }, global ]) end,
               fun to_upper/1,
               fun (X) -> re:replace (X, "RX0", "RX0", [ { return, list }, global ]) end,
               fun (X) -> case re:run (X, "-", [ { capture, none } ]) of
                                     nomatch ->
                                          insert_hyphen (X);
                                     match ->
                                          X
                                 end
               end ]).
------

Cheers,

-- p


On Tue, 9 Jun 2009, Attila Rajmund Nohl wrote:

> Hello!
>
> I think there wasn't any grumbling this month about the immutable
> local variables in Erlang, so here's real world code I've found just
> today:
>
>     % Take away underscore and replace with hyphen
>     MO1 = re:replace(MO, "_", "-", [{return, list}, global]),
>     MO2 = toupper(MO1),
>     % Replace zeros
>     MO3 = re:replace(MO2, "RX0", "RXO", [{return, list}, global]),
>     % Insert hyphen if missing
>     MO5 = case re:run(MO3, "-", [{capture, none}]) of
> 	      nomatch ->
> 		  insert_hyphen(MO3);
> 	      match ->
> 		  MO3
> 	  end,
>
> I think it's fairly clumsy to use MOx (MO for managed object) in the
> code. MO4 was removed during the regexp->re refactoring step. How to
> eliminate the versioned variable names? The
> MOAfterUnderscoresWereReplaced, UpperCaseMO, MOAfterRX0WasReplaced,
> etc. variablenames are really ugly. It used to use regexp, so at that
> point it wasn't possible to easily nest the whole into one call, but
> that would be still ugly. So any other ideas?
>
> ________________________________________________________________
> erlang-questions mailing list. See http://www.erlang.org/faq.html
> erlang-questions (at) erlang.org
>
>

Well for these men if they succeed; well also, though not so well, if
they fail, given only that they have nobly ventured, and have put forth
all their heart and strength.

        -- Theodore Roosevelt


More information about the erlang-questions mailing list