مسیر
/
Elixir
Elixir
/
برنامه‌ی درسی
/
کتابخانه‌های Erlang
کت

کتابخانه‌های Erlang در Elixir

8 تمرین

درباره‌ی کتابخانه‌های Erlang

کد Elixir در ماشین مجازی BEAM اجرا می‌شود. BEAM بخشی از سیستم زمان اجرای Erlang است. Elixir که از Erlang الهام گرفته و محیط اجرای خود را با آن سهیم است، همکاری‌پذیری خوبی با کتابخانه‌های Erlang فراهم می‌کند. این یعنی توسعه‌دهندگان Elixir می‌توانند از کتابخانه‌های Erlang در کد Elixir خود استفاده کنند. در واقع، جامعه‌ی Elixir توصیه نمی‌کند که برای قابلیت‌هایی که کتابخانه‌های Erlang از قبل فراهم کرده‌اند، کتابخانه‌ی Elixir بنویسید.

در نتیجه، برخی قابلیت‌ها، مانند عملیات ریاضی یا توابع زمان‌سنجی، در Elixir فقط از طریق Erlang در دسترس‌اند.

این رابطه‌ی نزدیک میان Elixir و Erlang یعنی اگر بخواهید به توسعه‌دهنده‌ای ماهر در Elixir تبدیل شوید، بهتر است زمانی را صرف یادگیری نحوه‌ی نگارش پایه‌ی Erlang کنید.

نحوه‌ی استفاده

کتابخانه‌ی استاندارد Erlang بدون نیاز به هیچ مرحله‌ی اضافه‌ای در کد Elixir ما قابل استفاده است.

توابع Erlang را می‌توان به همان روشی فراخوانی کرد که توابع Elixir را فراخوانی می‌کنیم، با یک تفاوت کوچک. اسم ماژول‌های Erlang اتم‌هایی به سبک snake_case هستند. برای مثال، برای فراخوانی تابع pi/0 از ماژول 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، باید آن را با تابع to_erl از ماژول مربوطه به قالب Erlang تبدیل کرد.

برای آشنایی با کتابخانه‌ی استاندارد Erlang، نگاهی به مرجع STDLIB بیندازید.

همکاری‌پذیری Elixir با کتابخانه‌های Erlang محدود به کتابخانه‌ی استاندارد Erlang نیست. هر کتابخانه‌ی Erlang را می‌توان در کد Elixir به کار برد.

ویرایش از طریق GitHub این پیوند در پنجره یا زبانه‌ی جدیدی باز می‌شود

کتابخانه‌های Erlang را یاد بگیرید

تمرین کردن قفل شده است

برای تمرین کتابخانه‌های Erlang قفل 2 تمرین دیگر را باز کنید