برنامه نویسی به زبان ارلنگ

ارلنگ زبان برنامه نویسی تابعی و همروند است

برنامه نویسی به زبان ارلنگ

ارلنگ زبان برنامه نویسی تابعی و همروند است

برنامه نویسی به زبان ارلنگ

در این وبلاگ مطالب مربوط به ارلنگ و الیکسیر منتشر خواهد شد

۱ مطلب با کلمه‌ی کلیدی «Function» ثبت شده است

  • ۰
  • ۰

گاهی اوقات نیاز دارید توابعی را برای استفاده لحظه ای تعریف کنید و یا برای نمونه تابعی را به عنوان متغیر به تابع دیگری بفرستید. برای این منظور در ارلنگ می توانید توابع بی نام تعریف کنید برای این کار مطابق زیر عمل کنید:

Double = fun(X) -> 2 * X end.

در مثال فوق Double  یک متغیر است که تابعی را در خود جا داده است. این تابع بی نام ورودی خود را دوبرابر می کند. می توان از Double مانند تابع معمولی استفاده کرد برای نمونه می توان از Double با ورودی 10 خروجی 20 را گرفت. استفاده از توابع بی نام محدودیتی ندارد و شما می توانید در داخل توابع بی نام از توابع بی نام استفاده کنید. عدد ورودی را در در عدد دیگری ضرب می کند. خروجی تابع اول تابعی است که عمل ظرب را انجام می دهد. خروجی تابع دوم عدد مورد نظر است:

Mult = fun(Times) -> ( fun(X) -> X * Times end ) end.

Triple = Mult(3).

Triple(5).  % 15

کنترل ورودی توابع از طریق گارد:

گاهی اوقات نیاز دارید مقادیر ورودی توابع را چک کنید بدون آنکه وارد تابع شوید. بنابراین در ارلنگ در صورت عدم تطابق به قسمت بعدی تابع جابجا می شوید. برای اینکار از when استفاده می کنیم. یعنی زمانی از این قسمت تابع استفاده کن که شرط مقابل برقرار باشد. به مثال زیر توجه کنید:

max(X, Y) when X > Y -> X;

max(X, Y) -> Y.

تابع بالا بیشینه دو عدد را بر می گرداند. قسمت اول چنانچه X>Y باشد تابع X  را بر می گرداند. چنانچه نبود تابع در قسمت دوم اجرا می شود که Y  را بر می گرداند. مشاهده می کنید که در ارلنگ عملا بجای استفاده از if که در زبان های رایج کاربرد دارد می تواند در قسمت ورودی توابع را بررسی کرد. با عبارت when  و شرط بعدی اش گارد گفته می شود. گارد ها می تواند شامل چند پیش شرط باشند که با ‘,’ از هم جدا می شوند و معنی AND را می دهد.

  • مهدی حسینی مقدم