Функціональні можливості мови: Ітератори та Замикання

Розробка мови Rust була натхненна багатьма мовами та техніками, і суттєвий вплив на неї мало функціональне програмування. Програмування у функціональному стилі зазвичай вбачає у собі використання функцій як значень, передаючи їх в аргументи, повертаючи як результат інших функцій, присвоюючи до змінних для подальшого застосування і так далі.

У цьому розділі, ми не обговорюватимемо питання того, що є функціональним програмуванням, а що ні. Натомість, ми обговоримо деякі можливості Rust, що схожі на можливості багатьох мов, які часто називають функціональними.

Зокрема, ми розглянемо:

  • Замикання, функціональну конструкцію, яку можна зберігати у змінній
  • Ітератори, спосіб обробки послідовності елементів
  • Як використовувати замикання та ітератори для покращення операцій вводу/виводу для проекту з 12 розділу
  • Швидкість замикань та ітераторів (Спойлер: вони швидші ніж ви думаєте!)

Ми вже розглянули деякі можливості Rust, такі як зіставлення зі шаблоном та енуми, які теж були створені з оглядом на ідеї функціонального стилю. Оскільки опановування замикань та ітераторів це важлива частина написання ідіоматичного та швидкого коду на Rust, ми виділимо для них увесь цей розділ.