轻作



重拾写作的乐趣

Erlang实现函数内的循环

2020.03.04

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上写脚本就方便了很多, 不用另外写在单独的脚本文件上

发表评论