[erlang-questions] Nested for-loops, there has to be a better way to do this
Joe Armstrong
erlang@REDACTED
Wed Jul 29 08:35:31 CEST 2009
I don't understand what you want.
If the input to your program is: [5,5,10]
the output should be: X
What is X?
/Joe
On Wed, Jul 29, 2009 at 4:55 AM, Yves S.
Garret<yoursurrogategod@REDACTED> wrote:
> I was playing around with the idea of implementing a nested for-loop
> like construct (I will concede, they are evil, but at rare times,
> necessary.) In non-functional programming languages, they are trivial
> to do. However, this has proved to be one of those simple things that
> are a pain in the neck for me. The idea was to be able to pass in a
> list [5, 5, 10] (for example) and go through it all like 3 dimensional
> array. The below illustration is far from elegant (it's almost 23:00
> where I live and need to go to work tomorrow early, so no time to come
> up with something more sane :) ), but is there as an inquisitive
> exercise. Now, in my opinion, this implementation sucks (first time
> I've ever gave such a problem a shot in Erlang.)
>
> Is there a better way to do this? Anyone would like to demonstrate
> it?
>
> Note: I've tested this code with the lists [2, 4] and [2, 4, 5].
>
> Compiled with:
> Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 5.6.5
>
> My code:
> ======================================
> -module(loopWrapper).
>
> -export([runLoop/1]).
>
> runLoop(List) ->
> [FirstVal | RestList] = List,
> NextVal = FirstVal - 1,
> if (length(RestList) > 0) and (FirstVal > 0) ->
> io:format("~B~n~n", [FirstVal]),
> runLoop(RestList),
> io:format("~n~n"),
> runLoop([NextVal | RestList]);
> FirstVal > 0 ->
> io:format("~B", [FirstVal]),
> runLoop([NextVal]);
> true ->
> null
> end.
>
> ________________________________________________________________
> erlang-questions mailing list. See http://www.erlang.org/faq.html
> erlang-questions (at) erlang.org
>
>
More information about the erlang-questions
mailing list