Сообщение от x-yuri
|
я не говорил никогда. Я говорил, что надо учитывать реальную проблему человека, а не формально отвечать на вопрос
|
Да нет, я прекрасно понимаю, что изначально ты процитировал чью-то эту фразу, чтобы показать, что "надо есть суп ложкой" (хотя, не обязательно). Я отметил, что для этого желания (завершить из вложенной функции внешнюю) есть обоснования и, что они реализованы в некоторых языках.
Кстати, однозначные призывы "есть суп ложкой" тоже можно нарушать с целью экспериментов от устоявшихся паттернов (ну, естественно, для этого должны быть обоснованные мотивации).
А дальше ты принял позицию, выдающую это за какую-то ненужную вещь, и я должен тебе доказывать, почему это не так. Но, ведь, цель нашей беседы не в этом, правда?
Я просто тебя информировал, без определения, плохая это вещь или нет. Здесь ты сам уже примешь решение.
Сообщение от x-yuri
|
я говорил о тех, которые всегда используют Proc.new, и никогда lambda. Потому что это либо фанатизм, либо пофигизм
|
Мне показалось, говоря о "ком попало", ты говоришь о людях, которые могут
вообще использовать return для выхода из вложенной функции, завершая внешнюю. Если я не так понял, извини.
Там есть ещё различия. Например, Proc.new (в отличие от lambda) не проверяет точное количество параметров (что также может быть удобно в определённых случаях).
Если интересно - вот исходник на Ruby (выполненный даже больше в виде статьи) о замыканиях -
http://innig.net/software/ruby/closures-in-ruby.rb - достаточно подробно описаны различные случаи (можешь сохранить, читать в редакторе с подсветкой, скрипт полностью рабочий и запускаемый).