Как стать автором
Обновить

Комментарии 8

не хватает отличий между Proc и lambda(а это очень важно!) но в целом плюсик
Может, таки перенести цикл в блог Ruby?
done!
Спасибо! Только вот здесь
например a = lambda {|a,b,c| a+b+c } создаст блок, который складывает три числа, в частности выражение b[1,2,3] вернет 6;

лучше пару имён поправить (первую a и последнюю b на что-то другое)
НЛО прилетело и опубликовало эту надпись здесь
Да, есть такая возможность. Код
 class A; def a;  puts "A#a";  end; end
 class B < A;  def a; puts "B#a";  lambda { super };  end; end 
 B.new.a.call

выведет
 B#a
 A#a

Термин «переменные родителя» мне непонятен. Переменные объекта не знают к какому из классов в иерархии наследования они относятся. И никто не знает. То же самое касается переменных класса.
НЛО прилетело и опубликовало эту надпись здесь
Что-то не очень нравитсяопределение в википедии.
Я бы написал

Замыкание — это функция, которая создается во время работы программы. Из тела этой функции доступны все переменные и функции, которые дотсупны в контексте, в котором создано замыкание. Для корректной работы замыканий необходимо, чтобы при жизни замыкания жили и локальные переменные, доступные из нее. В идеале в теле замыкания должна быть возможность делать всё, что можно делать в контексте, в котором оно было создано.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории