Показать сообщение отдельно
  #20 (permalink)  
Старый 30.01.2010, 22:37
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Сообщение от x-yuri
я не говорил никогда. Я говорил, что надо учитывать реальную проблему человека, а не формально отвечать на вопрос
Да нет, я прекрасно понимаю, что изначально ты процитировал чью-то эту фразу, чтобы показать, что "надо есть суп ложкой" (хотя, не обязательно). Я отметил, что для этого желания (завершить из вложенной функции внешнюю) есть обоснования и, что они реализованы в некоторых языках.

Кстати, однозначные призывы "есть суп ложкой" тоже можно нарушать с целью экспериментов от устоявшихся паттернов (ну, естественно, для этого должны быть обоснованные мотивации).

А дальше ты принял позицию, выдающую это за какую-то ненужную вещь, и я должен тебе доказывать, почему это не так. Но, ведь, цель нашей беседы не в этом, правда? Я просто тебя информировал, без определения, плохая это вещь или нет. Здесь ты сам уже примешь решение.

Сообщение от x-yuri
я говорил о тех, которые всегда используют Proc.new, и никогда lambda. Потому что это либо фанатизм, либо пофигизм
Мне показалось, говоря о "ком попало", ты говоришь о людях, которые могут вообще использовать return для выхода из вложенной функции, завершая внешнюю. Если я не так понял, извини.

Там есть ещё различия. Например, Proc.new (в отличие от lambda) не проверяет точное количество параметров (что также может быть удобно в определённых случаях).

Если интересно - вот исходник на Ruby (выполненный даже больше в виде статьи) о замыканиях - http://innig.net/software/ruby/closures-in-ruby.rb - достаточно подробно описаны различные случаи (можешь сохранить, читать в редакторе с подсветкой, скрипт полностью рабочий и запускаемый).
__________________
Тонкости ECMAScript

Последний раз редактировалось Dmitry A. Soshnikov, 30.01.2010 в 23:13.
Ответить с цитированием