定义自己的控制流程(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]