Про анонімні функції в Ruby

В Ruby термін “анонімна функція” зазвичай відноситься до блоків, лямбда-функцій або об’єктів Proc. Основна ідея полягає в тому, що це шматок коду, який можна передавати методам як аргумент. Вони називаються “анонімними”, оскільки вони можуть бути визначені без прив’язки до конкретного імені.

Блоки в Ruby - це частка коду, яка визначається між ключовими словами do та end або в фігурних дужках {}. Вони часто використовуються разом з методами, такими як each або map для обробки колекцій даних.

[1, 2, 3].each do |number|
  puts number
end

Lambda-функції: Лямбда-функції є анонімними функціями, які можна присвоїти змінній. Вони визначаються за допомогою оператора -> або ключового слова lambda .

multiply_by_two = ->(number) { number * 2 }
puts multiply_by_two.call(5) # виведе 10

Proc. Об’єкти класу Proc також можуть використовуватися як анонімні функції. Процедури можна визначити за допомогою Proc.new або скоротити до proc .

square = Proc.new { |x| x**2 }
puts square.call(3)

Зазначте, що блоки є основним механізмом для передачі коду методам в Ruby, а інші концепції, такі як лямбда та Proc, надають додаткові можливості для роботи з анонімними функціями.