المسارات
/
Elixir
Elixir
/
المنهج
/
مكتبات Erlang
مك

مكتبات Erlang في Elixir

8 تمارين

نبذة عن مكتبات Erlang

يعمل كود Elixir داخل آلة BEAM الافتراضية. وBEAM جزء من نظام زمن تشغيل Erlang. ولأن Elixir استلهمت من Erlang وتشاركها بيئة التشغيل، فهي توفّر توافقًا بينيًّا كبيرًا مع مكتبات Erlang. وهذا يعني أن مطوّري Elixir يمكنهم استخدام مكتبات Erlang من داخل كود Elixir الخاص بهم. بل إن مجتمع Elixir لا يشجّع على كتابة مكتبات Elixir لوظائف توفّرها مكتبات Erlang بالفعل.

ونتيجة لذلك، فإن بعض الوظائف، مثل العمليات الرياضية أو دوال المؤقّت، لا تتاح في Elixir إلا عبر Erlang.

هذه العلاقة الوثيقة بين Elixir وErlang تعني أنك قد ترغب في استثمار بعض الوقت في تعلّم الصياغة الأساسية لـ Erlang لتصبح مطوّر Elixir متمكّنًا.

كيفية الاستخدام

المكتبة القياسية لـ Erlang متاحة للاستخدام في كود Elixir لدينا دون أي خطوات إضافية.

يمكن استدعاء دوال Erlang بالطريقة نفسها التي نستدعي بها دوال Elixir، مع فرق صغير واحد. أسماء وحدات Erlang هي ذرّات بصيغة snake_case. على سبيل المثال، لاستدعاء دالة pi/0 في Erlang من وحدة math، نكتب:

:math.pi()
# => 3.141592653589793

وحدات Erlang الأكثر استخدامًا

توفّر وحدات Erlang الأكثر استخدامًا وظائف تفتقر إليها المكتبة القياسية في Elixir، وهي:

  • وحدة timer، التي توفّر دوال مثل sleep/1، وsend_after/2، وsend_interval/2.
  • وحدة rand، التي توفّر دوال مثل uniform/0، وnormal/0، وseed/2.
  • الدالة :io_lib.format/2، التي توفّر تنسيقًا للسلاسل النصية على نمط لغة C (باستخدام تسلسلات تحكّم).
  • وحدة math، التي توفّر دوال رياضية مثل sin/1، وcos/1، وlog2/1، وlog10/1، وpow/2، وغيرها.
  • وحدة queue، التي توفّر بنية بيانات الطابور.
  • وحدة crypto، التي توفّر دوال تشفيرية.
  • وحدة zip، التي توفّر دوال للتعامل مع أرشيفات zip.
  • وحدة calendar، التي توفّر دوال للتعامل مع التواريخ والوقت، مثل iso_week_number/1. ولكي تمرّر بنية Date أو Time أو NaiveDateTime إلى إحدى دوال Erlang، يجب تحويلها إلى صيغة Erlang باستخدام دالة to_erl من الوحدة المقابلة.

لاستكشاف المكتبة القياسية لـ Erlang، تصفّح الدليل المرجعي لـ STDLIB.

لا يقتصر التوافق البيني بين Elixir ومكتبات Erlang على المكتبة القياسية لـ Erlang، فأي مكتبة Erlang يمكن استخدامها في كود Elixir.

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة

تعلّم مكتبات Erlang

التدريب مقفل

افتح تمرينين إضافيين لممارسة مكتبات Erlang