English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O Erlang é uma linguagem de programação funcional, e algo que todos os linguagens de programação funcionais precisam lembrar é que elas não fornecem nenhuma construção de loop. Em vez disso, a programação funcional depende do conceito de recursão.
Devido ao Erlang não ter uma instrução while direta, é necessário usar a técnica de recursão disponível no Erlang para executar a implementação da instrução while.
Tentaremos seguir a implementação do loop while, como fazem outras linguagens de programação. Aqui está o fluxo geral a ser seguido.
Vamos ver um exemplo de como implementar o loop while usando recursão no Erlang.
-module(helloworld). -export([while/1,while/2, start/0]). while(L) -> while(L,0). while([], Acc) -> Acc; while([_|T], Acc) -> io:fwrite("~w~n",[Acc]), while(T,Acc+1). start() -> X = [1,2,3,4], while(X).
A respeito do programa acima,需要注意以下要点-
Defina uma função recursiva chamada while que simulará a implementação do loop while.
Como exemplo, insira a lista de valores definida na variável X na função while nossa.
A função while obtém cada valor da lista e armazena o valor intermediário na variável "Acc".
Então, faça chamadas recursivas do loop while para cada valor da lista.
A saída do código acima será-
0 1 2 3
Devido ao Erlang não ter uma instrução for direta, é necessário usar a técnica de recursão do Erlang para implementar a instrução for.
Vamos tentar implementar o loop for da mesma forma que outras linguagens de programação. Aqui está o fluxo geral a ser seguido.
Vamos ver um exemplo de implementação do loop for recursivo no Erlang.
-module(helloworld). -export([for/2,start/0]). for(0,_) -> []; for(N,Term) when N > 0 -> io:fwrite("Olá~n"), [Term|for(N-1,Term)]. start() -> for(5,1).
A respeito do programa acima,需要注意以下要点-
Estamos definindo uma função recursiva que simulará nossa implementaçãoLoop for.
Usamos medidas de segurança no função for para garantir que o valor de N ou o limite seja positivo.
Nós chamamos recursivamente a função for, reduzindo o valor de N em cada chamada recursiva.
A saída do código acima será:
Olá Olá Olá Olá Olá