Clause
← Toda a documentação

Traduzido do original em inglês · 06042fa · 2026-10-09 · Ler em inglês

Valores de função

Plano 11, steps 32–35 (2026-10-07): fun F/A, fun M:F/A, funs anónimas com variáveis capturadas (closures), funs com nome (fun Name(...) -> ... end), chamadas de valores de função (F(Args)) e chamadas dinâmicas (M:F(Args), apply/2,3). Os factos vêm dos códigos-fonte fixados maint-29 (erts/emulator/beam/utils.c erts_cmp, erl_printf_term.c, erl_lint) e de sondagens no OTP 29.1.1.

Valores

OrigemValorAs chamadas entram em
fun f/1Fun local deste módulo; todos os fun f/1 de um módulo são o mesmo valorf/1 deste módulo, exportada ou não
fun m:f/1Fun externa que designa m:f/1, também para o módulo atualm:f/1 quando um módulo do programa a exporta
fun(X) -> ... endFun local que captura as variáveis que lê do seu criador; cada avaliação constrói um novo valorA função gerada própria da fun
fun Name(X) -> ... endO mesmo, com Name associado à fun dentro das suas cláusulasA função gerada própria da fun
fun M:F/A com variáveisFun externa construída ao ser avaliada; igual à fun literal fun m:f/1 que designam:f/1 quando um módulo do programa a exporta

Chamadas dinâmicas

Closures

Representação

Comparação e impressão

Diferenças

Registadas em diferenças: