Есть более конкретное высказывание Непейводы Н.Н., — комментировать нужно подпорки и призраки.
Подпорка — некоторое исключение из теории или общего алгоритма; специальный код, рассматривающий отдельно особый крайний случай, и т.д. и т.п. Подпорки мы все писали, так что знаем.
Призрак — дуальная сущность, она есть в теории, но отсутствует в коде (единственная возможность ей там появиться — в виде комментария). Это теоремы, которые использовались при написании кода, различные инварианты, математические идеи, которые не извлекаются из кода непосредственно.
Все остальное должно быть таким (модульность, именование функций, переменных, классов, ), чтобы комментарии были не нужны.
Multiple assignement есть в Perl, Python, Lua, Magma,…
Он был придуман давно и отчасти для того, чтобы делать a, b = b, a. Поэтому сомнений насчет логики выполнения здесь быть не может.
Для этой конструкции все уже описано и обсуждено. В Ruby сделано так, как все давно уже привыкли — сначала целиком вычисляется правая часть, потом все присваивается левой. Не Matz это придумал и не ему менять логику multiple assignement.
тут также вопрос оптимальности. В частности при выполнении sort! не хотелось бы, чтобы делались malloc'и. Если bang делать из nobang, точно будет происходит выделение новой памяти для промежуточного массива. В большинстве случаев для bang методов можно написать алгоритмы, не делающие запросы на выделение памяти
На этот вопрос ответил Клод Шеннон в сработе «Mathematical Theory of Communication». Формулы написал. Очень интересно и внятно ответил. Я бы даже сказал, что это был прорыв (перепост, так как промазал)
На этот вопрос ответил Клод Шеннон в сработе «Mathematical Theory of Communication». Формулы написал. Очень интересно и внятно ответил. Я бы даже сказал, что это был прорыв.
Стал использовать vim. Там есть необходимая фича, которая выдает HTML, который не портится хабрахабровским обработчиком. Но ой как сильно мне бы хотелось писать код так:
> Windows Live Writer + Visual Studio + VSPaste + HTML Snippet + PowerGREP + регулярные выражения + некоторая работа ручками
мне кажется, по количеству действий Gvim (в том числе под виндами) будет давать результат несколько быстрее: меню Синтаксис -> Сделать HTML с подсветкой. Пробелы он превращает в , такой умница.
О конструкции begin полезно расказать в полной мере:
begin
Ух! мы тут
такого сейчас понаделаем !
rescue MySiimpleError => e
ошибка вроде простая,
сейчас мы её пофиксим и будем щастливы
retry if пофиксилась
rescue MyUrecoverbleError => e
ууупс!
puts "У нас серьезные неприятности " + e.message + "\n" + e.backtrace
else
итак, ошибок нет, и кое что еще осталось
сделать
ensure
а вот кое-что нужно полюбому сделать (есть исключения или нет),
например, закрыть все открытые соединения
end
Подпорка — некоторое исключение из теории или общего алгоритма; специальный код, рассматривающий отдельно особый крайний случай, и т.д. и т.п. Подпорки мы все писали, так что знаем.
Призрак — дуальная сущность, она есть в теории, но отсутствует в коде (единственная возможность ей там появиться — в виде комментария). Это теоремы, которые использовались при написании кода, различные инварианты, математические идеи, которые не извлекаются из кода непосредственно.
Все остальное должно быть таким (модульность, именование функций, переменных, классов, ), чтобы комментарии были не нужны.
Он был придуман давно и отчасти для того, чтобы делать a, b = b, a. Поэтому сомнений насчет логики выполнения здесь быть не может.
Для этой конструкции все уже описано и обсуждено. В Ruby сделано так, как все давно уже привыкли — сначала целиком вычисляется правая часть, потом все присваивается левой. Не Matz это придумал и не ему менять логику multiple assignement.
Это же просто сделать. Алё, админы!
мне кажется, по количеству действий Gvim (в том числе под виндами) будет давать результат несколько быстрее: меню Синтаксис -> Сделать HTML с подсветкой. Пробелы он превращает в , такой умница.
begin
полезно расказать в полной мере:Кроме того иногда хочется дефолным значением иметь конкретный объект в памяти, а не нечто ему равное, но другое.