3.7 KiB
title | localeTitle |
---|---|
Erlang | إرلانج |
إرلانج
Erlang هي لغة برمجة وظيفية تم تطويرها بواسطة Ericsson لاستخدامها في تطبيقات الاتصالات. لأنهم شعروا أنه من غير المقبول أن يكون لنظام الاتصالات أي توقف كبير ، فقد بني Erlang ليكون (من بين أشياء أخرى):
- الموزعة والمتسامحة مع الخطأ (يجب ألا يؤدي استخدام أحد البرامج أو الأجهزة الفاشلة إلى تراجع النظام)
- متزامن (يمكن أن يفرز العديد من العمليات ، كل منها ينفذ عملًا صغيرًا ومعرَّفًا جيدًا ، ومعزولًا عن الآخر ولكنه قادر على التواصل عبر الرسائل)
- قابلة للتبديل السريع (يمكن تبديل الشفرة في النظام أثناء تشغيله ، مما يؤدي إلى توفر عالٍ والحد الأدنى من وقت تعطل النظام)
بناء الجملة
Erlang يجعل الاستخدام المكثف من العودية . منذ البيانات غير قابل للتغيير في إرلانج، واستخدام while
و for
حلقات (حيث يحتاج متغير للحفاظ على تغيير قيمتها) غير مسموح به.
في ما يلي مثال على العودية ، حيث يوضح كيف تقوم إحدى الدرجات مرارًا بتفكيك الحرف الأول من مقدمة الاسم وطباعته ، ولا تتوقف إلا عند مواجهة الحرف الأخير.
`-module(name).
-export([print_name/1]).
print_name([RemainingLetter | []]) -> io:format("~c~n", [RemainingLetter]); print_name([FirstLetter | RestOfName]) -> io:format("~c~n", [FirstLetter]), print_name(RestOfName). `
انتاج:
> name:print_name("Mike"). M i k e ok
وهناك أيضا تركيز كبير على نمط مطابقة، التي كثيرا ما يلغي الحاجة ل if
بنية أو case
البيان. في المثال التالي ، هناك نوعان من التطابقات لأسماء محددة ، متبوعًا بـ catch-all لأية أسماء أخرى.
`-module(greeting).
-export([say_hello/1]).
say_hello("Mary") -> "Welcome back Mary!"; say_hello("Tom") -> "Howdy Tom."; say_hello(Name) -> "Hello " ++ Name ++ ".". `
انتاج:
`> greeting:say_hello("Mary"). "Welcome back Mary!"
greeting:say_hello("Tom"). "Howdy Tom." greeting:say_hello("Beth"). "Hello Beth." `
حاول
هناك مواقع ويب يمكنك فيها محاولة تشغيل أوامر Erlang دون الحاجة إلى تثبيت أي شيء محليًا ، مثل هذه:
إذا كنت ترغب في تثبيته على جهاز (أو جهاز ظاهري) ، يمكنك العثور على ملفات التثبيت في Erlang.org أو على Erlang Solutions .
معلومات اكثر:
- حول إرلانج
- تعلمك بعض Erlang عن جيد العظمى!
- مأوى ينتج! (مجموعة من المقالات ومقاطع الفيديو والكتب لتعلم Erlang)
- إرلانج (لغة برمجة)