История про for var
Язык PascalABC.NET - современная версия языка Object Pascal, которая взяла всё лучшее, что есть в современных языках программирования. Поэтому мы ввели описание типов внутри блоков и автоопределение типа переменной.
begin var x := 1; var a := |1,2,3|; end.
Но это не работало. Все как учили этому старому древнему стилю Pascal с описанием груды переменных до begin
var x: integer; var a: array of integer; begin x := 1; a := |1,2,3|; end.
После этого мы ввели описание переменной-счетчика цикла прямо в заголовке цикла:
begin for var i:=1 to 10 do Print(i); for var i:=20 to 30 do Print(i); end.
Но и это не помогло. Все, кто знали старое, продолжали учить по старому:
var i: integer; begin for i:=1 to 10 do Print(i); for i:=20 to 30 do Print(i); i := 666666; end.
Да еще и радостно использовали переменную i после цикла для других целей, радуясь, что у них высвободилась переменная.
И в конце концов мы сделали неуничтожимое предупреждение:
И на нас обиделись! Стали писать на разных форумах, что мы нарушаем каноны Паскаля и нас надо запретить!
Но ситуация изменилась. Кто-то понял, кто-то просто стал следовать. Правило есть правило.
И язык PascalABC.NET стал языком "for var i". У нас даже школьники говорят на вопрос, какие циклы вы знаете: "while, repeat, loop и for var".
Вот такая история. Мир меняется. Надеемся, он поменяется еще больше, и мир современного программирования победит.