سرور 1: في هذا الإصدار الأخير من سيغما، وأنا نفذت ما يمكن أن أسميه حل تكرارية، حيث اعتدت على حلقة قدما إلى العد حتى كل من أرقام بين 1 و م، بعد ذلك إعادة المبلغ. ولكن اتضح يمكننا استخدام آخر تقنية لتنفيذ نفس وظيفة، وهي تقنية المعروفة باسم العودية. وظيفة العودية، إذا جاز التعبير، هي مجرد واحدة تطلق على نفسها. الآن، في حد ذاته، وهذا قد يكون هناك مشكلة. إذا وظيفة يدعو ببساطة نفسها التي تطلق على نفسها التي تطلق على نفسها، هذه العملية قد تنتهي بوت من أي وقت مضى. ولكن طالما نحن تشمل ما يسمى الحالة الأساسية، شرط أن يضمن أننا لا ندعو في بعض الحالات أنفسنا، أن عملية خلاف ذلك حلقات لانهائية يجب أن تتوقف. دعونا الآن reimplement سيغما على النحو التالي. إذا كان n أقل من أو يساوي 0، وأنا ببساطة، وإلى حد ما بشكل تعسفي، الذهاب الى العودة 0. آخر ما أنا بصدد القيام به هو الواقع سيغما لحساب كثافة إيجابية أن لقد تم تسليم. الآن، ما هو سيغما من م؟ حسنا، من سيغما م هو، بطبيعة الحال، مجموع من 1 حتى من خلال م. ولكن إذا كنا نفكر في ذلك وسيلة أخرى، انها ببساطة مجموع متر زائد متر ناقص 1 زائد ناقص 2 م وهكذا دواليك، على طول الطريق وصولا الى 1. حتى في هذا المعنى، يبدو أن أنا يمكن أن يعود ببساطة متر زائد. ثم أحتاج م ناقص 1 زائد ناقص 2 م. ولكن لدي وظيفة التي يمكن أن تعطي لي بالضبط هذا الجواب، وهما سيجما للمتر ناقص 1. الآن، داعيا نفسي بهذه الطريقة لا يبدو وكأنه أفضل فكرة. لأنه إذا كان يدعو سيغما سيغما الذي يدعو سيغما الذي يدعو سيغما، كنت أعتقد أن هذه العملية قد لا ينتهي أبدا. ولكن لهذا السبب كان لدينا ما يسمى قاعدة الحالة في الجزء العلوي من هذه الوظيفة. وإذا كان الشرط أن يتحقق إذا م هو أقل من أو يساوي 0 أنا لن لأسمي نفسي. انا ذاهب الى العودة بدلا من ذلك 0، والذي بدوره سوف تضاف إلى الأرقام السابقة التي كنت تلخيص يصل، وبالتالي وقف هذا عملية لانهائية خلاف ذلك. دعونا نرى الآن ما إذا كان هذا الجديد يعمل التنفيذ. دعونا حفظ وتجميع، و تشغيل هذا البرنامج. جعل سيغما 1 نقطة خفض سيغما 1. ودعونا تزويده الأرقام نفسها كما كانت من قبل. 2، والتي ينبغي أن نأمل أن تعطيني 3. دعونا تزويدها 3، والتي ينبغي أن نأمل أن تعطيني 6. ودعونا أخيرا تزويده 50، الذي يعطي حقا لي 1،275.