Product Design, Manufacturing & Innovation Resources
بيت » النطاق المعجمي في R

النطاق المعجمي في R

1980
  • Gerald Jay Sussman
  • Guy L. Steele Jr.
مبرمج كمبيوتر يوضح النطاق المعجمي في لغة البرمجة R.

(صورة تم إنشاؤها للتوضيح فقط)

يستخدم R نطاقًا معجميًا، وهو مفهوم موروث من لغة Scheme. هذا يعني أن قيم المتغيرات الحرة في الدالة تُحل بالعثور عليها في البيئة التي عُرفت فيها الدالة، وليس البيئة التي استُدعيت فيها. هذا يجعل سلوك الدالة أكثر قابلية للتنبؤ به واستقلالية عن سياق الاستدعاء، وهي ميزة أساسية في البرمجة الوظيفية.

Lexical scoping, also known as static scoping, is a fundamental convention for looking up variable names in a programming language. In R, when a function needs to access a variable that is not defined locally (a “free variable”), it searches for that variable in the environment where the function was created. This “creation environment” is permanently attached to the function. This contrasts with dynamic scoping, used in some older languages, where the search would proceed up the chain of function calls (the “calling environment”).

على سبيل المثال، لنفترض دالة `f()` تستخدم متغيرًا `x` دون تعريفه. إذا عُرّفت `f()` في البيئة العامة حيث `x` تساوي 10، فستستخدم دائمًا `x = 10` بغض النظر عن مكان استدعاء `f()`. حتى لو تم استدعاؤها من دالة أخرى لها متغير محلي خاص بها `x = 20`، ستتجاهل `f()` قيمة `x` في بيئة الاستدعاء وتستخدم القيمة الموجودة في بيئة تعريفها. هذا السلوك يُسهّل عملية تصحيح الأخطاء وفهم الكود، حيث يتحدد سلوك الدالة فقط من خلال الكود الخاص بها والبيئة التي عُرّفت فيها.

تُعدّ هذه الخاصية أساسيةً لنماذج البرمجة الوظيفية، إذ تُتيح استخدام بنيات قوية مثل الإغلاقات، حيث يمكن للدالة أن "تتذكر" البيئة التي أُنشئت فيها. ويُستخدم هذا بكثرة في برمجة R المتقدمة وتطوير الحزم، كما هو الحال في عائلة دوال `lapply` وفي أُطر عمل مثل Shiny لتطبيقات الويب.

UNESCO Nomenclature: 1203
- علوم الحاسب الآلي

يكتب

النظام التجريدي

الاضطراب

تزايدي

الاستخدام

الاستخدام الواسع النطاق

السلائف

  • مفهوم النطاق في لغات البرمجة
  • لغة البرمجة Lisp ولهجاتها
  • لغة البرمجة Scheme، التي ساهمت في نشر نطاق المعجم
  • حساب لامدا كأساس نظري للوظائف والنطاق

التطبيقات

  • إنشاء الإغلاقات في R للبرمجة الوظيفية
  • تطوير مساحات أسماء الحزمة لتجنب تعارضات المتغيرات
  • تمكين تقنيات التقييم غير القياسية المستخدمة في حزم مثل dplyr
  • بناء أكواد قوية وقابلة للتعديل دون آثار جانبية

براءات الاختراع:

    أفكار ابتكارات محتملة

    بسبب عمليات جمع البيانات من خلال برامج الروبوت، والتي تتجاوز حاليًا 40 ألفًا يوميًا، فإن هذا المحتوى مخصص لأعضاء المجتمع فقط.
    > تسجيل الدخول < أو > سجل < (مجاني 100٪) للوصول إلى هذا، وكذلك جميع المحتويات والأدوات الأخرى المقيدة.

    ذات صلة بـ: النطاق المعجمي، النطاق الثابت، البرمجة الوظيفية، لغة R، لغة Scheme، البيئة، الإغلاق، المتغير الحر، مساحة الاسم، التقييم غير القياسي.

    السياق التاريخي

    النطاق المعجمي في R

    1973
    1980
    1980
    1980
    1982-07-01
    1988-06-01
    1990
    1970-01-01
    1975-06-01
    1980
    1980
    1980
    1986-01-01
    1990
    1990

    (إذا كان التاريخ غير معروف أو غير ذي صلة، على سبيل المثال "ميكانيكا الموائع"، يتم توفير تقدير تقريبي لظهوره الملحوظ)

    الاختراع والابتكار والمبادئ التقنية ذات الصلة

    الصور بالحجم الكامل والتنزيلات متاحة فقط 100% مجاناً للأعضاء المسجلين.