مرجع سريع

ورقة غش البرمجة الموجهة الكبرى في Elixir

دليل مرجعي سريع للبرمجة الموجهة الكبرى في Elixir: متغيرات البيئة __ENV__ و __MODULE__ و __CALLER__، نماذج Kernel.SpecialForms، ووحدات الماكرو quote و unquote.

· تاريخ النشر

دليل بناء الجملة السريع للبرمجة الموجهة الكبرى (Metaprogramming)، فحص شجرة بناء الجملة المجردة (AST) وقت الترجمة، وكتابة وحدات الماكرو في Elixir.

🔗 مراجع ذات صلة: ورقة غش لغة البرمجة Elixir

النماذج الخاصة والمتغيرات الزائفة (Special Forms & Pseudo-Variables)

بنى البرمجة الموجهة الكبرى الأساسية المعرفة في Kernel.SpecialForms:

__DIR__     # المسار المطلق لمجلد الملف الحالي كسلسلة نصية
__MODULE__  # ذرة اسم الوحدة الحالية (مثل MyModule)
__ENV__     # هيكل بيئة الترجمة الحالية (Macro.Env)
__CALLER__  # هيكل بيئة الطرف المستدعي للماكرو

فحص بيئة التنفيذ (ENV)

# فحص الحقول الموجودة داخل بيئة الترجمة
Map.keys(__ENV__)
# => [:__struct__, :aliases, :context, :context_modules, :export_vars, :file,
#     :function, :functions, :lexical_tracker, :line, :macro_aliases, :macros,
#     :module, :requires, :vars]

# فحص التعريفات والدوال في وحدة المستدعي
__CALLER__.module |> Module.definitions_in() |> IO.inspect()

الاقتباسات و AST والإرسال الديناميكي (Quotes, AST & Dynamic Dispatch)

# توليد شجرة بناء الجملة المجردة (AST)
quote do: 1 + 2
# => {:+, [context: Elixir, import: Kernel], [1, 2]}

# فك الاقتباس داخل الاقتباس
number = 10
quote do: 1 + unquote(number)

# استدعاء دالة ديناميكيا
apply(Enum, :reverse, [[1, 2, 3]])
# => [3, 2, 1]

موضوعات ذات صلة