[erlang-questions] Simple multi-case

Roger Larsson <>
Mon Nov 13 09:48:32 CET 2006


On Monday 13 November 2006 06:41, datacompboy wrote:
> >> Since there more than one call, but too small code to move it
> >> into separate fun.
> >
> > There is no such thing as code that is too small to move into a separate
> > function.
>
> separate function -- more chars to type, and code far from table itself.
> separate function is not a problem to speed of runtime, but that problem
> for development speed. 

Most code is typed only once but read many times...
There might be a reason why both functions needs to be run - why?
Put the reason somewhere in the code.

> I need at least create new function name, that must 
> contain info about "what doing here", but not "how it doing that", since
> after some changes name will be wrong...

Do you have a corporate policy that every functions needs to have full 
documentation? Then it might be the policy that is in error...

doXZ()->doX(), doZ().

Might not be necessary to document with 20 lines of comments...

>

What about using funs? Light weight separate functions :-)

-module(test).
-export([doTest/1]).

doX()->io:fwrite("X").
doY()->io:fwrite("Y").
doZ()->io:fwrite("Z").

doTest(Id)->
  DoXZ = fun () -> doX(), doZ(), ok end,
  case Id of
     free -> DoXZ();
     online -> DoXZ();
     busy -> doY()
  end.


/RogerL



More information about the erlang-questions mailing list