Erlang - Döngüler

Erlang işlevsel bir programlama dilidir ve tüm işlevsel programlama dilleri hakkında hatırlanması gereken şey, döngüler için herhangi bir yapı sunmamalarıdır. Bunun yerine, işlevsel programlama özyineleme adı verilen bir kavrama dayanır.

while İfadesi Uygulaması

Erlang'da doğrudan while ifadesi olmadığından, bir while ifadesi gerçeklemesi gerçekleştirmek için Erlang'da bulunan özyineleme tekniklerini kullanmak gerekir.

Diğer programlama dillerinde olduğu gibi while döngüsünün aynı uygulamasını izlemeye çalışacağız. İzlenecek genel akış aşağıdadır.

Şimdi, özyinelemeyi uygulamak için nasıl kullanabileceğimize dair bir örneğe bakalım. while Erlang'da döngü.

Misal

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

Yukarıdaki programla ilgili olarak aşağıdaki kilit noktalara dikkat edilmelidir -

  • While döngümüzün uygulanmasını simüle edecek while adında özyinelemeli bir işlev tanımlayın.

  • Örnek olarak while fonksiyonumuza X değişkeninde tanımlanan değerlerin bir listesini girin.

  • While işlevi her liste değerini alır ve ara değeri 'Acc' değişkeninde saklar.

  • While döngüsü daha sonra listedeki her değer için özyinelemeli olarak çağrılır.

Yukarıdaki kodun çıktısı -

Çıktı

0
1
2
3

Açıklama için

Doğrudan olmadığı için for Erlang'da mevcut olan deyim, Erlang'da bulunan özyineleme tekniklerini kullanmak zorundadır. for ifade uygulaması.

Aynı uygulamayı takip etmeye çalışacağız. fordiğer programlama dillerinde izlendiği gibi döngü. Aşağıda uyulması gereken genel akış verilmiştir.

Şimdi, özyinelemeyi uygulamak için nasıl kullanabileceğimize dair bir örneğe bakalım. for Erlang'da döngü.

Misal

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

Yukarıdaki programla ilgili olarak aşağıdaki kilit noktalara dikkat edilmelidir -

  • Özyinelemeli bir fonksiyon tanımlıyoruz ki bu da bizim for loop.

  • N değerinin veya sınırın pozitif bir değer olmasını sağlamak için 'for' işlevi içinde bir koruma kullanıyoruz.

  • Her özyinelemede N'nin değerini düşürerek özyinelemeli olarak for işlevini çağırırız.

Yukarıdaki kodun çıktısı -

Çıktı

Hello
Hello
Hello
Hello
Hello