English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Erlang es un lenguaje de programación funcional, y algo que todos los lenguajes de programación funcionales deben recordar es que no proporcionan ninguna construcción de bucle. En su lugar, la programación funcional depende del concepto de recursión.
Debido a que Erlang no tiene una declaración while directa, es necesario usar la técnica de recursión disponible en Erlang para ejecutar la implementación de la declaración while.
Intentaremos seguir el mismo flujo de implementación del bucle while que se sigue en otros lenguajes de programación. A continuación, se muestra el flujo general a seguir.
Veamos un ejemplo de cómo implementar el bucle while utilizando recursión en 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).
Sobre el programa anterior, es necesario tener en cuenta los siguientes puntos-
Definir una función recursiva llamada while que simulará la implementación del bucle while.
Como ejemplo, introduzca la lista de valores definida en la variable X en nuestra función while.
La función while obtiene cada valor de la lista y almacena el valor intermedio en la variable "Acc".
Luego, se llama recursivamente al bucle while para cada valor de la lista.
La salida del código anterior será-
0 1 2 3
Debido a que Erlang no tiene una declaración for directa, es necesario usar la técnica de recursión de Erlang para implementar la declaración for.
Intentaremos seguir el mismo flujo de implementación del bucle for que se sigue en otros lenguajes de programación. A continuación, se muestra el flujo general a seguir.
Vamos a ver un ejemplo de implementación del bucle for utilizando recursión en Erlang.
-module(helloworld). -export([for/2,start/0]). for(0,_) -> []; for(N,Term) when N > 0 -> io:fwrite("Hello~n"), [Term|for(N-1,[Term]]. start() -> for(5,1).
Sobre el programa anterior, es necesario tener en cuenta los siguientes puntos-
Estamos definiendo una función recursiva que simulará nuestra implementaciónBucle for.
Hemos utilizado medidas de protección en la función for para asegurar que el valor de N o el límite sea positivo.
Llamamos recursivamente a la función for, reduciendo el valor de N en cada recursión.
La salida del código anterior será:
Hola Hola Hola Hola Hola