erlang语义上绑定的变量是不可变的, 函数内也没有for/while/loop等循环
但是, 函数式语言, 函数是第一等公民, 当然是可以通过命名高阶函数实现循环
-module(test).
main(_) ->
Sum = fun
Loop(10, Sum) ->
Sum;
Loop(N, Sum) ->
Loop(N + 1, Sum + N)
end(1, 0),
io:format("loop: ~p~n", [Sum]). %% 45
有了这个, 在-eval上写脚本就方便了很多, 不用另外写在单独的脚本文件上