سؤال

ما هو نموذج برمجة R (R كما في GNU S)؟

أعتقد أنني على دراية بلغات البرمجة ذات النماذج المفاهيمية المختلفة (لديك برمجة بلغة C ++ و Java و Prolog وبعض اللغات الأخرى) ولكن على الرغم من أنني أكتب بالفعل نصوص R الصغيرة الخاصة بي، إلا أنني لست متأكدًا من النموذج R الذي من المفترض أن يمثله.

هل كانت مفيدة؟

المحلول

يدعم R مزيجًا من نماذج البرمجة الشيئية والوظيفية.

ومن الجانب الوظيفي:

  • لديه وظائف من الدرجة الأولى
  • لديه تقييم كسول للحجج
  • يشجع على وظائف نقية وخالية من الآثار الجانبية

لكن

  • لا ينفذ عودية الاستدعاء الخلفي
  • ومن السهل إنشاء وظائف غير خالصة

على الجانب الموجه للكائنات:

  • لديها ثلاثة نماذج مدمجة في OO:S3 وS4، وهما غير قابلين للتغيير ويدعمان نمط الوظيفة العامة OO، والفئات المرجعية (المعروفة أيضًا باسم R5) القابلة للتغيير، وتدعم نمط تمرير الرسائل الأكثر شيوعًا OO.

  • يتأثر S4 بشدة بأسلوب OO للثغة الشائعة (CLOS) وديلان.

  • هناك أيضًا عدد من الحزم المساهمة التي توفر أنواعًا أخرى من OO: proto, mutatr, R.oo, OOP.

لكن

  • توفر أدوات OO المدمجة القليل من السكر النحوي.

نصائح أخرى

وفق ويكيبيديا (تم اضافة التأكيدات)،

يدعم R البرمجة الإجرائية مع وظائف و البرمجة الشيئية مع وظائف عامة.تعمل الدالة العامة بشكل مختلف اعتمادًا على نوع الوسائط التي تم تمريرها.بمعنى آخر، تتعرف الوظيفة العامة على نوع الكائن وتختار (ترسل) الوظيفة (الطريقة) الخاصة بهذا النوع من الكائن.على سبيل المثال، يحتوي R على وظيفة print() عامة يمكنها طباعة كل أنواع الكائنات تقريبًا في R باستخدام بناء جملة بسيط "print(objectname)".

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top