Exception10 | عضو نشط | المشاركات: 658 نقاط التميز: 508 |  | معدل المشاركات يوميا: 0.3 | الأيام منذ الإنضمام: 2424 | | السلام عليكم في لغة Scala ، هناك فرق بين foldLeft و reduceLeft عند استخدامهما مع التحويل والتجميع لقائمة من العناصر. - foldLeft يأخذ قيمة بداية ويمر عبر كل عنصر في القائمة من اليسار إلى اليمين. في كل تمرير، يقوم بتطبيق دالة على العنصر الحالي والقيمة المتراكمة، ثم يستخدم نتيجة هذه الدالة كقيمة متراكمة للتمرير التالي. في النهاية، يُعيد foldLeft القيمة المتراكمة النهائية.
val numbers = List(1, 2, 3, 4, 5) val sum = numbers.foldLeft(0)((acc, num) => acc + num) println("المجموع: " + sum) // الناتج: المجموع: 15 - reduceLeft يمر عبر القائمة من اليسار إلى اليمين ويقوم بتطبيق الدالة المعطاة على العناصر المتتالية. يأخذ العنصر الأول كقيمة بداية، ثم يطبق الدالة على كل عنصر آخر والقيمة المتراكمة. النتيجة النهائية تكون القيمة المتراكمة بعد تطبيق الدالة على جميع العناصر.
val numbers = List(1, 2, 3, 4, 5) val product = numbers.reduceLeft((acc, num) => acc * num) println("الضرب: " + product) // الناتج: الضرب: 120 تحياتي |
|