Skip to content

المولدات

المولد (Generator) هو دالة خاصة تُنتج قيماً باستخدام الكلمة المفتاحية أنتج. عند استدعاء دالة مولد، يتم تنفيذها وتجميع كل قيم أنتج في مصفوفة تُرجع عند الانتهاء.

التركيب الأساسي

sad
دالة مولد أعداد()
  أنتج 10
  أنتج 20
  أنتج 30
نهاية

متغير النتيجة = أعداد()
اطبع_سطر(النتيجة)   # [10, 20, 30]

# التكرار على النتيجة
لكل عنصر في النتيجة
  اطبع_سطر(عنصر)
نهاية

ملاحظة مهمة

الترتيب الصحيح هو دالة مولد (وليس مولد دالة). المولدات في لغة ص حالياً تجمع كل القيم فوراً (eager) وتُرجعها كمصفوفة.

مثال: إنتاج تسلسل

sad
دالة مولد أزواج(حد)
  أنتج 2
  أنتج 4
  أنتج 6
  أنتج 8
  أنتج 10
نهاية

لكل رقم في أزواج(5)
  اطبع_سطر(رقم)
نهاية

متى تستخدم المولدات؟

الحالةلماذا مولد؟
إنتاج تسلسل قيمبديل أنظف من بناء مصفوفة يدوياً
فصل الإنتاج عن الاستهلاككود أوضح وأسهل للصيانة
تجميع نتائج متعددةبدلاً من ارجع واحد

الفرق بين ارجع وأنتج

  • ارجع تنهي الدالة نهائياً وتُرجع قيمة واحدة
  • أنتج تضيف قيمة إلى المصفوفة الناتجة — الدالة تكمل التنفيذ بعدها

التالي: البرمجة غير المتزامنة ←

مُرخَّص بموجب رخصة MIT