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

جمل التكرار في Erlang

Erlang هو لغة برمجة تقنية الوظائف، وكل لغة برمجة تقنية الوظائف يجب أن تتذكر أنها لا توفر أي بنية دائرة. بدلاً من ذلك، تعتمد برمجة الوظائف على مفهوم التكرار المتكرر.

تنفيذ جملة while

بسبب عدم وجود جملة while مباشرة في Erlang، لابد من استخدام تقنية التكرار المتكرر المتاحة في Erlang لتنفيذ تنفيذ جملة while.

سنحاول اتباع نفس عملية تنفيذ الدائرة while التي تتبعها لغات البرمجة الأخرى. إليك العملية العامة التي ستتبعها.

دعونا نرى مثالاً على كيفية تنفيذ الدائرة while باستخدام التكرار المتكرر في 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).

عن البرنامج المذكور أعلاه، يجب الانتباه إلى النقاط التالية-

  • يتم تعريف دالة تكرارية تسمى while لتقليد تنفيذ الدائرة while.

  • كمثال، يتم إدخال قائمة القيم المحددة في المتغير X إلى دالة while الخاصة بنا.

  • يحصل الدالة while على كل قيمة من القائمة ويخزن القيمة المتوسطة في المتغير "Acc".

  • ثم يتم استدعاء الدائرة المتكررة while بشكل متكرر لكل قيمة في القائمة.

الإخراج الخاص بالكود أعلاه سيكون -

الناتج

0
1
2
3

جملة for

بسبب أن Erlang لا يحتوي على جملة for مباشرة، لابد من استخدام تقنية التكرار المتكرر الخاصة بـ Erlang لتحقيق جملة for.

سنحاول تنفيذ دائرة for بنفس الطريقة التي تتبعها اللغات البرمجية الأخرى. إليك العملية العامة التي يجب اتباعها.

سنحاول تنفيذ دائرة for باستخدام التكرار في 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).

عن البرنامج المذكور أعلاه، يجب الانتباه إلى النقاط التالية-

  • نحن نحدد وظيفة تكرارية ستعكس تنفيذنادائرة التكرار.

  • نحن نستخدم تدابير حماية في وظيفة for لضمان أن قيمة N أو الحد أقصى تكون إيجابية.

  • نحن نستدعي وظيفة for بشكل متكرر من خلال تقليل قيمة N في كل تكرار.

الناتج للكود أعلاه سيكون:

الناتج

مرحبًا
مرحبًا
مرحبًا
مرحبًا
مرحبًا