Угу, и двоеточия в питоне тоже нафиг не сдались в большинстве случаев.
@!!ex
Проще не парсеру а человековосприятию.
Обычно всякие операторы, вроде if, while, for уже можно считать открывающими инструкицями,
с объявлениями переменных, стейтментами несколько сложнее.
Вот если бы вместо } был end, небыло бы таких проблем:
// Possible C++ int main() int var = GetVar( ); if ( var == 10) puts( "Bad value\n"); else puts( "Good value\n"); end return 0; end
nes
> // Possible C++
> int main()
> int var = GetVar();
> if (var == 10)
> puts("Bad value\n");
> else
> puts("Good value\n");
> end
> return 0;
> end
Ты только что изобрел питон, поздравляю. Еще бы end в конце блока убрать.
totoro
> Ты только что изобрел питон, поздравляю.
Бейсик он изобрел, а не питон.
Тогда уж вот так.
// Possible C++ int main() int var = GetVar( ) if var ~= 10 then print( "Good value") else print( "Bad value") end return 0 end
nes
> Проще не парсеру а человековосприятию.
> Обычно всякие операторы, вроде if, while, for уже можно считать открывающими
> инструкицями,
> с объявлениями переменных, стейтментами несколько сложнее.
> Вот если бы вместо } был end, небыло бы таких проблем:
Не каждому. End действует угнетающе. Одни потери, нет пути, выхода. Окончание всего.
Количество суицидов увеличится.
Просто напомню, как бы сейчас писали, если бы СССР победил в холодной войне.
цел основа() цел пер = ПолучитьПер( ) если пер ~= 10 тогда печатать( "Хорошее значение") иначе печатать( "Плохое значение") конец возврат 0 конец
А что, мне нравится.
dave
int main() return 0; happy_end
Azure Drake
> Просто напомню, как бы сейчас писали, если бы СССР победил в холодной войне.
Всмысле "писали бы"?
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТратыОбороты.Период КАК Период,
| СУММА(ТратыОбороты.СуммаОборот) КАК СуммаОборот
|ИЗ
| РегистрНакопления.Траты.Обороты(&НачДата, &КонДата, День, Категория.ВходитВПланРасходов) КАК ТратыОбороты
|
|СГРУППИРОВАТЬ ПО
| ТратыОбороты.Период
|
|УПОРЯДОЧИТЬ ПО
| Период";
Запрос.УстановитьПараметр("НачДата", НачДата);
Запрос.УстановитьПараметр("КонДата", КонДатаЗапроса);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
// Создадим таблицу дней
ТипДаты = Новый ОписаниеТипов( "Дата", , , Новый КвалификаторыДаты( ЧастиДаты.Дата ) );
ТипЧисла = Новый ОписаниеТипов( "Число", Новый КвалификаторыЧисла( 12, 2 ) );
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить( "Дата", ТипДаты );
ТЗ.Колонки.Добавить( "Сумма", ТипЧисла );
ТекДень = НачДата;
Для День = 1 По ЧислоДнейЗапроса Цикл
Строка = ТЗ.Добавить();
Строка.Дата = ТекДень;
Строка.Сумма = 0;
ТекДень = ТекДень + 24 * 60 * 60;
КонецЦикла;
Пока Выборка.Следующий() Цикл
ТекДень = НачалоДня( Выборка.Период );
Строка = ТЗ.Найти( ТекДень, "Дата" );
Если Строка = Неопределено Тогда
ВызватьИсключение "Аномалия! Дата " + ТекДень + " не найдена в таблице, обратитесь к программисту.";
КонецЕсли;
Строка.Сумма = Выборка.СуммаОборот;
//Сообщить( "Период: " + Выборка.Период + " Сумма: " + Выборка.СуммаОборот );
КонецЦикла;И да, если хотел схохмить что это как то неестественно - то нет, это только лишь дело привычки.
Когда так реально пишешь каждый день, то воспринимается ровно как оно и есть: просто программа на просто родном языке.
Никаких больше деформаций восприятия не возникает. Естественный и понятный код и всё.
nes
> if (var == 10)
Лучше без скобочек, но с then
> КонецЕсли;
> КонецЦикла;
Это выглядит фигово безотносительно языка.
1 frag / 2 deaths
Но это уже был бы совсем не Цэ++.
А так-то я много бы чего в нем изменил,
на свой вкус и цвет, даже тема у меня есть отдельная )
=A=L=X=
> Строка.Сумма = 0;
> Если Строка = Неопределено Тогда
Не заморачивались с := или ==
Azure Drake
> Это выглядит фигово безотносительно языка.
По моему в 1С наоборот так сделали (в полной аналогии с бейсиком) для еще более нарочитой самодокументации. Опять таки, когда привыкаешь - совершенно не парит.
> Не заморачивались с := или ==
Тут всё очень похоже на бейсик, никаких присваиваний в условиях.
function main(args)
if(args == nil) then
print('empty')
elseif(args[1] == 'some_param')then
print('some param: '..args[2])
else
print('unknown params')
end
return 0, 'zero', {'yeap, another result', 0}
end
result = {main({'some_param', 42})}
print(result[3][1])Тема в архиве.