Во-первых, почему "нет"? Ваши утверждения не противоречат моему.
Во-вторых, как из свободы следует "ad-hoc-ность"? И что вы называете нетипизированностью?
В-третьих, разве имеет значение для прикладного программиста, на каком этапе компиляции применяются какие правила? Главное, чтобы гарантии языка выполнялись.
И какие дженерики вы имели в виду? У меня сложилось впечатление, что плюсовые темплейты более мощное средство, чем дженерики Java или C#. Но я так, по статьям на хабре сужу
Вы не контролируете все вызовы вашей функции. Другой разработчик может написать вызов с литеральным значением, мотивируя, например, тем, что оно используется только в одном месте.
В добавок, написание таких дополнительных констант полностью нивелирует выигрыш от неразделения функций: приходится писать кода больше линейно по количеству вызовов.
Кроме того, когда появится требование иногда возвращать только аннотацию краткой сути сообшения (допустим, первые 72 символа), этот код всё равно рефакторить. И в каком-нибудь динамически слабо неявно типизируемом языке с редакторами кода не так здорово, чтобы за три секунды это решить.
Бездумное использование break снижает читаемость, goto (jmp) — зачастую необходимость. Но это никак не говорит о том, является ли что-то из этого разновидностью другого.
Goto — безусловный переход.
Break — безусловный переход к любому оператору после определённого цикла.
Какое-нибудь включение множеств значений типов друг в друга. Пусть E = Either[N, Z], где Either — сумма типов N и Z, как оно применяется в статье, N — тип, элементами которого являются только все натуральные числа меньше 3 (пусть с нулём), Z — тип, элементами которого являются только все целые числа меньше 3 по модулю. Я интуитивно ожидаю кардинальное число |E| = 5.
Во-первых, почему "нет"? Ваши утверждения не противоречат моему.
Во-вторых, как из свободы следует "ad-hoc-ность"? И что вы называете нетипизированностью?
В-третьих, разве имеет значение для прикладного программиста, на каком этапе компиляции применяются какие правила? Главное, чтобы гарантии языка выполнялись.
И какие дженерики вы имели в виду? У меня сложилось впечатление, что плюсовые темплейты более мощное средство, чем дженерики Java или C#. Но я так, по статьям на хабре сужу
Полиморфизм C++ без шаблонов — как раз ad hoc
"С пылу, с жару"
Я вам почему-то верю
Так как параметры-то названы?)
А один евангелист рекурсии дополняет: "В начале было Слово, И Слово было у Бога, И Слово было Бог"
В русском обычно так тоже не разделяют же. Оба варианта — прошедшее время. Глаголы разные. Разных видов (несовершенного и совершенного).
Автор же, скорее всего хотел написать про английские past simple/continuous и present perfect (continuous)
Именно
Вы не контролируете все вызовы вашей функции. Другой разработчик может написать вызов с литеральным значением, мотивируя, например, тем, что оно используется только в одном месте.
В добавок, написание таких дополнительных констант полностью нивелирует выигрыш от неразделения функций: приходится писать кода больше линейно по количеству вызовов.
Кроме того, когда появится требование иногда возвращать только аннотацию краткой сути сообшения (допустим, первые 72 символа), этот код всё равно рефакторить. И в каком-нибудь динамически слабо неявно типизируемом языке с редакторами кода не так здорово, чтобы за три секунды это решить.
А про неограниченный круг лиц там тоже было?
На самом деле, проворонили ПД, нельзя ли по суду взыскать?
Именно!
Опять же, в своей практике я и в break не нуждался.
Ну… К любому, всякому, какой бы ни оказался за этим циклом.
Таки безусловный переход.
Goto — безусловный переход.
Break — безусловный переход к любому оператору после определённого цикла.
Может, какие светила медицины попробуют? Готов стать подопытным.
Чем break не разновидность goto?
https://m.habr.com/en/post/442468/
Тоже так думал, но нет, зачастую информация преподносится как достоверная (вообще я любил РенТВ, аж заностальгировал)
Тоже подумал, что по таким тестам можно любителей настолок вычислять)
Разумеется, пытался рассматривать как объединение. Ок, спасибо.
Как-то я не ожидал, что предполагается отказ от наследования
Какое-нибудь включение множеств значений типов друг в друга. Пусть E = Either[N, Z], где Either — сумма типов N и Z, как оно применяется в статье, N — тип, элементами которого являются только все натуральные числа меньше 3 (пусть с нулём), Z — тип, элементами которого являются только все целые числа меньше 3 по модулю. Я интуитивно ожидаю кардинальное число |E| = 5.
Т.е. нет "наследования" типов? (Integer)2 и (Number)2 обязательно разные вещи?