В Аде все структурные операторы уже включают в себя операторные скобки - избавились от кучи лишних begin'ов и ошибок, связанных с одиночными-составными операторами. Но для простых случаев лаконичность ухудшилась - каждый раз надо писать endif, endloop и т.д.
В Питоне вместо операторных скобок - отступы. Это хорошо для больших блоков, но плохо смотрится для маленьких плюс неудобно для автоматической генерации исходных текстов.
Я предлагаю использовать подход из Haskell - взаимозаменяемость операторных скобок и отступов.
Ключевое понятие - операторы с одним и тем же отступом - считаются последовательными и находящимися на одном уровне. Заодно это позволяет отказаться от разделителей операторов, если их не больше одного на строку.
Т.е.
- Код: Выделить всё
оператор1
оператор2
оператор3
оператор4
эквивалентно
- Код: Выделить всё
оператор1; begin оператор2; оператор3 end; оператор4
Для условного оператора
- Код: Выделить всё
if условие then оператор1 else оператор2 end; оператор3
Эквивалентно
- Код: Выделить всё
if условие
оператор1
else
оператор2
оператор3
then (открывающая операторная скобка) и endif(закрывающая) операторная скобка, а также точка с запятой (разделитель) успешно заменены отступами.
Причем можно и так
- Код: Выделить всё
if условие then оператор1 else оператор2
оператор3
Закрывающая скобка endif заменена отступом - оператор3 имеет тот же уровень, что и if)