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

StackOverflow https://stackoverflow.com/questions/1740917

  •  20-09-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

Когда вы используете такой метод, как Array#collect это занимает целый квартал в {}, вы, по сути, создаете lambda / 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

Видишь Анонимные функции в Википедии, и некоторые другие вопросы SO для нюансов lambda против. Proc.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top