ویژگیهای زبانهای تابعی: تکرارگرها و closureها
طراحی زبان Rust از بسیاری از زبانها و تکنیکهای موجود الهام گرفته است و یکی از تأثیرات مهم آن برنامهنویسی تابعی است. برنامهنویسی به سبک تابعی اغلب شامل استفاده از توابع به عنوان مقادیر است، از طریق ارسال آنها به عنوان آرگومان، بازگرداندن آنها از دیگر توابع، اختصاص آنها به متغیرها برای اجرای بعدی و موارد دیگر.
در این فصل، ما بحث نخواهیم کرد که برنامهنویسی تابعی چیست یا چه نیست، بلکه به جای آن درباره برخی از ویژگیهای Rust که مشابه ویژگیهای بسیاری از زبانهایی است که اغلب به آنها تابعی گفته میشود، صحبت خواهیم کرد.
به طور خاص، ما پوشش خواهیم داد:
- _Closure_ها، ساختاری شبیه به تابع که میتوان آن را در یک متغیر ذخیره کرد
- _پیمایشگر_ها (Iterator)، روشی برای پردازش مجموعهای از عناصر
- نحوه استفاده از closureها و iteratorها برای بهبود پروژهٔ ورودی/خروجی در فصل ۱۲
- عملکرد closureها و iteratorها (هشدار: آنها سریعتر از چیزی هستند که ممکن است فکر کنید!)
ما قبلاً برخی از ویژگیهای دیگر Rust، مانند الگوها و enums را پوشش دادهایم که همچنین از سبک تابعی تأثیر گرفتهاند. از آنجایی که تسلط بر closureها و تکرارگرها بخش مهمی از نوشتن کد ایدوماکتیک و سریع در Rust است، ما کل این فصل را به آنها اختصاص خواهیم داد.