English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Sentenças de Loop do Erlang

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.

Implementação da instrução while

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.

Exemplo

-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á-

Saída

0
1
2
3

instrução for

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.

Exemplo

-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á:

Saída

Olá
Olá
Olá
Olá
Olá