Iterate n times

Francesco Cesarini francesco@REDACTED
Tue Jan 22 20:53:40 CET 2002

Another function I have often implemented and used in my private 
libraries is

while(Fun, Arg) -> while(Fun(Arg), Fun).

while({true, Arg},   Fun) -> while(Fun(Arg), Fun);
while({false, Val}, _Fun) -> Val.


Sean Hinde wrote:

>Does anyone know if this function has a proper name or already exists
>iter(F, St, 0) ->
>    St;
>iter(F, St, N) when integer(N), N > 1 ->
>    iter(F, F(St, N), N-1).
>Simple examples of usage might be:
>1> iter(fun(St, N) -> N + St end, 0, 5).
>2> iter(fun(St, N) -> [N|St] end, [], 5).
>This email (including attachments) is confidential.  If you have received
>this email in error please notify the sender immediately and delete this
>email from your system without copying or disseminating it or placing any
>reliance upon its contents.  We cannot accept liability for any breaches of
>confidence arising through use of email.  Any opinions expressed in this
>email (including attachments) are those of the author and do not necessarily
>reflect our opinions.  We will not accept responsibility for any commitments
>made by our employees outside the scope of our business.  We do not warrant
>the accuracy or completeness of such information.

More information about the erlang-questions mailing list