Есть ли "простые" объяснения того, что такое проки и лямбды в Ruby?

Есть ли "простые" объяснения того, что такое проки и лямбды в Ruby?

1 ответ

Решение

Лямбды (которые существуют и в других языках) похожи на специальные функции, созданные только для простого использования, а не для выполнения некоторых сложных действий.

Когда вы используете метод, как Array#collect это занимает блок в {}вы по сути создаете лямбда /proc/block только для использования этого метода.

a = [1, 2, 3, 4]
# Using a proc that returns its argument squared
# Array#collect runs the block for each item in the array.
a.collect {|n| n**2 } # => [1, 4, 9, 16]
sq = lambda {|n| n**2 } # Storing the lambda to use it later...
sq.call 4 # => 16

Смотрите анонимные функции в Википедии и некоторые другие вопросы о нюансах lambda против Proc,

Другие вопросы по тегам