История изменений
Исправление wandrien, (текущая версия) :
Смысл следующий.
В Си есть такая достаточно частая идиома:
do {
бла бла;
if (что-то) break;
бла бла;
if (что-то) break;
бла бла;
} while (0);
Здесь «цикл» как раз используется не по назначению цикла, а как скоуп для выхода по break из него.
В моём проекте этот юзкейс будет легализован в конструкцию языка, позволяющую напрямую выходить из блока, не только из цикла.
Синтаксис управляющих конструкций строится в соответствии с идеей, что он должен наглядно говорить о том, что происходит. Поэтому все виды разных управляющих конструкций выглядят по-разному, а не просто состоят из ()
и {}
.
Разумеется, такую вещь, как «цикл, который не является циклом», я тоже не мог обойти вниманием в этом ракурсе. Поэтому такой не_цикл
и не выглядит как цикл, а вводится отдельным ключевым словом.
Исходная версия wandrien, :
Смысл следующий.
В Си есть такая достаточно частая идиома:
do {
бла бла;
if (что-то) break;
бла бла;
if (что-то) break;
бла бла;
} while (0);
Здесь «цикл» как раз используется не по назначению цикла, а как скоуп для выхода по break из него.
В моём проекте этот юзкейс будет легализован в конструкцию языка, позволяющую напрямую выходить из блока, не только из цикла.
Синтаксис управляющих конструкций строится в соответствии с идеей, что он должен наглядно говорить о том, что происходит. Поэтому все виды разных управляющих конструкций выглядят по-разному, а не просто состоят из ()
и {}
.
Разумеется, такую вещь, как «цикл, который не является циклом», я тоже не мог обойти вниманием в этом ракурсе. Поэтому такое не_цикл
и не выглядит как цикл, а вводится отдельным ключевым словом.