Thanks folks - @Daniel, @Jesse and @Sergej.<br>I see the point now.<br><br><div class="gmail_quote">On Wed, Jun 22, 2011 at 11:28 PM, Daniel Luna <span dir="ltr"><<a href="mailto:daniel@lunas.se">daniel@lunas.se</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">I'm not sure I understand what you mean with an extra stack frame.<br>
Version 2 has a tail call at the end of loopInit so will not use any<br>
extra memory. While version 1 adds an extra comparison operation for<br>
every time around the loop.<br>
<br>
Besides that, if you do any work at all within the loop, that will not<br>
matter at all.<br>
<br>
Go with the readable version. It's faster, uses less memory, and (most<br>
importantly) is easier to read.<br>
<br>
(If you want to be able to do hot code loading on this code you should<br>
use ?MODULE:mainLoop(), but most likely just convert whatever you do<br>
into a gen_server, supervisor, or gen_event.)<br>
<br>
/Daniel<br>
<br>
BTW. Erlang naming convention would have loop_init. CamelCase is for<br>
variables, while underscore (_) is used for function names.<br>
<div><div></div><div class="h5"><br>
On 22 June 2011 19:44, Icarus Alive <<a href="mailto:icarus.alive@gmail.com">icarus.alive@gmail.com</a>> wrote:<br>
> Hi,<br>
><br>
> Of these 2 styles, which one is preferred, and why ?<br>
> To me, the readability of 2nd style is better, tough it consumes 1 stack<br>
> frame extra.<br>
> Are there some cases where style-1 might be preferred, or be the only option<br>
> ?<br>
><br>
> %% style-1 -----------------------------------------<br>
> mainLoop(InitialRun) -><br>
>  if InitialRun == true -><br>
>    % do some initialization,<br>
>    mainLoop(false);<br>
>  true -><br>
>    % do routine loop tasks,<br>
>    mainLoop(InitialRun)<br>
>  end.<br>
><br>
> %% style-2 -----------------------------------------<br>
> loopInit() -><br>
>  % do some intialization,<br>
>  mainLoop().<br>
><br>
> mainLoop() -><br>
>  % do routing loop tasks,<br>
>  mainLoop().<br>
><br>
><br>
> cheers,<br>
> Icarus<br>
</div></div><div class="im">> _______________________________________________<br>
> erlang-questions mailing list<br>
> <a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
> <a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
><br>
><br>
<br>
<br>
<br>
--<br>
</div><a href="http://havebackpack.com" target="_blank">http://havebackpack.com</a> - Exploring the world with a 30L backpack.<br>
Open to fun challenging assignments anywhere in the world.<br>
</blockquote></div><br>