نشر على ٢٨-٠٩-٢٠١٩

تقليل عدد لا يحصى - الجزء الأول: تبدأ الرحلة

شريحة العنوان لـ

هوذا اختار الليمور الظهور على وسيط قائم على النص ، وبذلك معهم كامل المحتوى المصور من "تقليل التعددية - مغامرة مصورة".

إذا كنت ترغب في رؤية نسخة RubyConf الكاملة للحديث ، يمكنك العثور عليها هنا:

نظرًا لأن هذا كان عبارة عن عرض تقديمي مكثف للصور وقائم على القصة ، سنقوم بتقسيم هذا الأمر إلى مقالات متعددة من أجل الهضم.

جدول المحتويات

  1. تبدأ الرحلة
  2. Chartreuse - ماجستير في الخريطة
  3. النيلي - ماجستير في اختيار
  4. البنفسجي - ماجستير في البحث
  5. Cerulean - ماجستير في تالي
  6. درس أخير من القرمزي

التالي >>

تلبية الأحمر

أحمر يلوح مرحبا

تلبية الأحمر ، الليمور. إنه طالب ماجستير عظيم القرمزي ، وتعلم طرق الحد.

لقد كان يمارس بعض الوقت الآن على جمع الأرقام وتعلم طرق البرمجة الوظيفية.

من خلال هذه النقطة ، يعتقد نفسه أنه ماهر تمامًا في ذلك ، إن لم يكن مستعدًا لمحاولة تجارب السيد بنفسه.

أحمر مع مطرقة ، والتفكير في الحد من الأشياء

الآن Red يعشق بشكل مطلق ، ولا سيما يقلل من مجموعات كبيرة من الأرقام إلى مبالغ بسيطة. لقد حصل جيدًا عليه في الواقع.

أحمر يحلم بتقليل أعداد كبيرة من الأرقام

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

نظرة إلى الحد

تعد ميزة "الاختزال" الآن مهمة شيقة جدًا في "التعداد" ، ومن الصعب جدًا فهم ما تقوم به.

دعنا نلقي نظرة قليلا على كيفية عمله.

قائمة 1 و 2 و 3 مبالغ إلى 6

تخفيض ، في حالة وجود مجموع ، يأخذ في قائمة من الأرقام ويعيد مجموع هذه الأرقام.

[1،2،3] .الخفض (0) {| a، v | a + v} # => 6

قد يبدو الرمز الخاص بهذا الأمر شيئًا من هذا القبيل ، لكن هذا أمر يصعب فهمه ، لذلك دعونا نحلله قليلاً ، أليس كذلك؟

المراكم

عند النظر إلى المركم ، 0 ، يتم تمثيله في الوظيفة ويتم إرجاعه بالقيمة 6

نبدأ مع تراكم. يبدأ التراكم كأول وسيطة يتم تقليلها ، وفي هذه الحالة يكون 0. لماذا 0؟ إذا أضفنا أي شيء إلى 0 ، فإننا نعيد هذا الرقم. وهذا يجعلها عنصرًا "فارغًا" جيدًا.

عندما تكون القائمة فارغة ، نعود إلى عنصرنا الفارغ!

سنرى تراكمنا يظهر طوال هذه المقالة.

القوائم والقيم

بالنظر إلى قائمة 1 و 2 و 3 ممثلة كـ v في الوظيفة

التالي هو قائمتنا ، والتي سوف تظهر في الخامس من خلال هذه المقالة. سيتم تكرار كل عنصر من عناصر قائمتنا مع تقليله ، والذهاب إلى الوظيفة كـ v.

الانضمام إلى القيم والمراكمين

النظر إلى عامل التشغيل الإضافي المستخدم للانضمام إلى جهاز تجميع وقيمة لإنشاء جهاز تجميع جديد

أخيرًا ، وربما الأهم من ذلك هو كيف ننضم إلى قيمتنا ومجمعنا معًا لصنع مُراكم جديد. في هذه الحالة ، +.

الآن الشيء المثير للاهتمام هنا هو أن الطريقة التي نجمع بها الأشياء سوية تؤثر على قيمتنا الفارغة أيضًا. سيكون من غير المعقول للغاية الانضمام إلى أي رقم مع الضرب إذا كانت القيمة الفارغة المفترضة هي 0 ، لا ؟:

[1 ، 2 ، 3] .خفض (0) {| a، v | a * v}
=> 0

سوف يعود دائما 0! بدلاً من ذلك ، نود استخدام الرقم 1 لهذا الإقران المحدد.

كلنا معاالان

0 + 1 ، 2 ، 3

لذلك ، قد يكون لدينا شيء يشبه هذا قليلاً. تقليل قائمة 1 ، 2 ، 3 في قيمة البداية 0 باستخدام + لربط القيم معًا.

أكثر شيوعًا قد يبدو كالتالي:

0 + 1 + 2 + 3

ولكن كيف يعمل بالضبط؟ كيف يمكننا تتبع تدفق البيانات؟ دعنا نلقي نظرة على ذلك.

كيف يقلل يقلل

كل خطوة من خطوات الحد ، كما هو موضح في النص أدناه

لكل حلقة من الاختزال ، ندخل في وظيفة لدينا تراكم وقيمتنا المقبلة. كل ما يتم إرجاعه من هذه الوظيفة يصبح التراكم الجديد في المدى التالي للتقليل.

  1. نبدأ بقيمة مبدئية بقيمة 0 ونضيف 1 لها ، مما يتيح لنا تراكمًا جديدًا بقيمة 1.
  2. هذا يعني أن الحلقة التالية نبدأ بالرقم 1 ونضيف إليها القيمة التالية في قائمتنا ، 2 ، مما يعطينا 3.
  3. في الحلقة الأخيرة لدينا تراكم 3 وقيمة الأخير 3.
  4. والآن بعد أن أصبح هذا الاختزال قد نفد من الأرقام إلى ، حسناً ، يقلل ، فإنه يعيد المجمع النهائي الذي كان لديه. في هذه الحالة ، جوابنا هو 6.

ما هو الحد؟

شرح العناصر الأساسية للتقليل ، كما هو مذكور في النص أدناه

Reduce هي طريقة لأخذ قائمة بأشياء كثيرة وتقليلها إلى شيء واحد باستخدام قيمة أولية ، وطريقة لضم القيم معًا لإنشاء مُجمع جديد.

درجة الماجستير في البرمجة الوظيفية

الأحمر يحلم نفسه باعتباره سيد حكيم مع القوى الكبرى

بالتأكيد الآن هذا يجعلنا أسياد البرمجة الوظيفية ، الذين يشربون من ينبوع المعرفة ، من الحكمة بعد سنواتنا وأقوى من حساب الموت! القوى الكاملة لروبي في متناول أيدينا ، ولا شيء يمكن أن يمنعنا!

حسنًا ، باستثناء شيء واحد ...

Enumerable # المبلغ

[1،2،3] .um # => 6

قدم روبي 2.4+ وظيفة جديدة ، sum ، والتي تفعل الشيء نفسه تقريبا.

تحقيق هذا ، الأحمر هو ذهول بشكل ملحوظ. يبدو أن كل ما تعلمه من قبل ليس له صلة بالموضوع في مواجهة هذه الوظيفة الجديدة ، مما جعله يطرح سؤالًا صعبًا للغاية:

هو الحد لا لزوم لها؟

كان الحد لا لزوم لها؟ قرر أن يذهب إلى المصدر الوحيد الذي يعرف أنه سيكون لديه إجابة على سؤاله ، سيده القرمزي.

طلب المساعدة

كتب ريد رسالة ، يسألها بكل بساطة:

رسالة خطية حمراء لإتقانها:

هل القتل يقتل؟ مع الرسالة المرسلة ، بدأ الأحمر بالسرعة ، في انتظار بشغف للحصول على رد. أخيرًا ، لقد جاء ، سيده رد على رسالته!

الأحمر تلقي المغلف مختوم من سيده.

... وداخل الرسالة قال ببساطة: "تعال إلي إذا كنت ترغب في التعلم".

مع ذلك ، قرر Red أن الوقت قد حان للذهاب في مغامرة.

رحلة لإتقان القرمزي

الأحمر يسافر لرؤية سيده ، كما هو موضح في النص أدناه.

حتى غامر الأحمر عبر السهول وعبر التلال ، في الجبال التي تمر بالغابات والخنادق ، وكان هناك أمامه علامة. الإشارة تشير إلى قلعة سيده ، محشورة وراء الغيوم ، مرتفعة فوق قمم الجبال.

حولها كرات عملاقة من الضوء تدور حولها ، وكأنها تدعو أولئك الذين غامروا بالعثور عليها.

مع أن الأحمر ضغط على ، ودخلت القلعة.

سيد القرمزي

الأحمر يشرح مأزقه لسيده.

التقى ريد مع السيد سكارليت في قلعتها ، وبدأ يخبرها بكل الأشياء التي تعلمها وفعلها في وقته منذ مغادرته. لقد تعلم الكثير ونما ، لكنه لا يزال يشعر كما لو أن هناك شيئًا ما مفقودًا ، شيئًا فقط يمكنها أن تريه ، لذلك سأل ريد:

"سيد حكيم ، هل جعل المبلغ يقلل عديمة الفائدة؟"

القرمزي المنير الأحمر

"آه الأحمر. خذ بعين الاعتبار ، ولحظة واحدة ربما ، أنه يمكنك فعل أكثر من مجرد التلخيص بتقليل. ماذا لو استخدمنا الطرح؟ عمليه الضرب؟ قطاع؟ ماذا لو لم نستخدم الأرقام على الإطلاق؟

القرمزي تظهر الأحمر مجموعة فارغة وظيفة الانضمام ، ودفع

"بدلاً من ذلك ، لدينا مجموعة فارغة ، ونضغط لإضافة عناصر إليها. ماذا يمكن للمرء أن يفعل هذا؟

إرسال القرمزي الأحمر قبالة في مغامرة

"أنا أعرف الشيء فقط. ستجد ثلاثة أسياد في أرض التعداد. انطلق وتعلم منها حول وظائفها ، ومعرفة ما إذا كان يمكنك معرفة كيف يمكنك استخدام تقليل لتفعل الشيء نفسه. "

مع ذلك ، غادر سكارليت ريد مع الكثير من التفكير ، وخريطة لمساعدته في طريقه.

في أرض التعداد

أحمر يبحث في الخريطة ، يبحث على أرض كاملة من التعداد

مع ذلك ، كان خارج أركان الخريطة ، ليتعلم من الأساتذة الذين سيجدونها هناك. كانت أرض Enumerable مكانًا شاسعًا ، مليء بالمفاجآت والفضول ، لكن بمساعدة ريد وخريطته الموثوقة ، وجد ريد ما يحتاجه بالضبط.

أحمر مع إغلاق الخريطة مع مسار مرسوم على

كان السيد الأحمر الأول الذي التقى به هو سيد Map ، Chartreuse.

التالي >>

أنظر أيضا

5 أشياء تحتاج إلى القيام به لإنشاء مدونة الجودةوسائل التواصل الاجتماعي والنظرة الرقميةThe Evil Hippie Cult 011-Art Model Confidentialمعجزة الطفل ، وكسر القاعدة ، والعبقرية البصرية الاكتئابية: نظرة على فن بابلو بيكاسوكيف نحزن على "الساحرة"مراجعة: راؤول إسبارزا يلعب دور البطولة في فيلم "Arturo Ui"