我也学erlang(四)

定义自己的控制流程(for)

  Erlang没有for循环,我们先定义一个:

-module(loop_for).
-export([for/3]).

for(Max,Max,F)          ->[F(Max)];
for(I,Max,F)               ->[F(I)|for(I+1,Max,F)].

就这么简单,例如,对for(1,10,F)求值会生成列表[F(1),F(2),……F(10)]。

现在有了一个for循环,可以用它来创建1到10的整数列表和平方列表

2> loop_for:for(1,10,fun(I)->I end).
[1,2,3,4,5,6,7,8,9,10]
3> loop_for:for(1,10,fun(I)->I*I end).
[1,4,9,16,25,36,49,64,81,100]

 

posted on 2012-07-16 18:50  百万军中  阅读(163)  评论(0编辑  收藏  举报