Здравствуйте, Mamut, Вы писали:
M>Ой. Ничего не изменилось. Все условия на месте. Но только ВНЕЗАПНО «не, не имеет смысла».
Бывают предусловия, бывает необязательный defensive programming для проверки некоторых из предусловий (при этом не являющийся частью контракта), бывают обычные внутренние условия/разветвления соответствующие контракту функции.
Ты понимаешь разницу между предусловием и простым if'ом внутри или снаружи функции? Без согласия в терминологии не вижу смысла продолжать ходить по кругу.
M>>>где афинные преобразования применяются (я, правда, не понял, в чем именно там проявляется мощь стат. типизации, ну да ладно)
EP>>В аффинном пространстве есть точки и векторы. Складывать две точки нельзя, разница двух точек это вектор, сумма точки и вектора — точка, линейная комбинация векторов — вектор. Статическая типизация, помимо всего прочего, позволяет закодировать эту логику и проверять её во время компиляции.
M>Ну в общем это все упирается только в «если у нас все абсолютно доступно во время компиляции». Да, это приятно, не скрою. Но нам, например, от этого ни холодно ни жарко
А я уже
показывалАвтор: Evgeny.Panasyuk
Дата: 10.02.15
полный рабочий пример в котором N псевдослучайных runtime флагов переводятся в compile-time значения, то есть в значения доступные во время компиляции