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

Erlang-Loop-Statement

Erlang ist eine funktionale Programmiersprache, und etwas, das alle funktionellen Programmiersprachen beachten müssen, ist, dass sie keine beliebigen Schleifenkonstrukte bieten. Stattdessen verlassen sich funktionale Programmiersprachen auf das Konzept der Rekursion.

Implementierung der while-Anweisung

Da in Erlang keine direkte while-Anweisung vorhanden ist, muss die Implementierung des while-Zyklus durch die verfügbaren rekursiven Technologien von Erlang erfolgen.

Wir werden versuchen, die Implementierung des while-Zyklus so zu gestalten, wie sie in anderen Programmiersprachen üblich ist. Der folgende ist der allgemeine Ablauf, den wir befolgen werden.

Lassen Sie uns ein Beispiel sehen, wie man den while-Zyklus in Erlang mit Rekursion implementiert.

Beispiel

-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).

Bezüglich des obigen Programms sind folgende Punkte zu beachten-

  • Definieren Sie eine als while bezeichnete rekursive Funktion, die die Implementierung des while-Zyklus nachahmt.

  • Als Beispiel geben wir die Werteliste, die in der Variable X definiert ist, in unsere while-Funktion ein.

  • Die while-Funktion holt jeden Wert der Liste und speichert den Zwischenwert in der Variable "Acc".

  • Dann wird die while-Schleife für jeden Wert der Liste rekursiv aufgerufen.

Die Ausgabe des obigen Codes wird sein-

Ausgabe

0
1
2
3

for-Anweisung

Da Erlang keine direkte for-Anweisung hat, muss die for-Anweisung durch die rekursiven Techniken von Erlang implementiert werden.

Wir werden versuchen, die gleiche Implementierung des for-Schleifens zu folgen, wie sie in anderen Programmiersprachen verwendet wird. Hier ist der allgemeine Ablauf, der befolgt werden sollte.

Lassen Sie uns einen Beispiel sehen, wie man in Erlang den for-Schleifen rekursiv implementiert.

Beispiel

-module(helloworld). 
-export([for/2,start/0]). 
for(0,_) -> 
   []; 
   
   for(N,Term) when N > 0 -> 
   io:fwrite("Hallo~n"), 
   [Term|for(N-1,Term)]. 
   
start() -> 
   for(5,1).

Bezüglich des obigen Programms sind folgende Punkte zu beachten-

  • Wir definieren eine rekursive Funktion, die unser Implementieren simuliertfor-Schleife.

  • Wir haben im „for“-Funktionsschutzmaßnahmen verwendet, um sicherzustellen, dass der Wert von N oder die Grenze positiv ist.

  • Wir rufen die for-Funktion rekursiv auf, indem wir den Wert von N in jeder Rekursion verringern.

Die Ausgabe des obigen Codes wird sein:

Ausgabe

Hallo
Hallo
Hallo
Hallo
Hallo