Re[5]: О синтаксисе языков
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 11.01.12 10:38
Оценка:
Здравствуйте, x-code, Вы писали:

XC>
// допустим, почти обычное "сишное" объявление функции
XC>void Foo(int x=0,y=0,z=0) {}
XC>// а вот так можно обращаться к локальным параметрам функции внутри круглых скобок при вызове функции.
XC>Foo(.z=100, .y=200);


Мне тут не нравится, что при увеличении количества параметров, их надо криво записывать в столбик. При этом последний параметр не закомментируешь просто.

  CreateProcess( 
    .arg1 = 1,
    .arg2 = 2,
    .arg3 = 3,
    .arg4 = 4); // Бу-э-э-э... Неудобно, неэстетично
Re[5]: О синтаксисе языков
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 11.01.12 10:45
Оценка:
Здравствуйте, netch80, Вы писали:

M>>Следующая бага подскажет и следующее улучшение: указывать еще и тип передаваемого параметра


N>... и мы вернулись к баяну 20-летней давности (system hungarian notation, чтоб её автору икалось. нет, это не Simonyi)


Точно! При вызове метода надо указывать тип каждой используемой переменной, название и тип ожидаемого аргумента

  std::ostream stream = std::cout: std::ostream << double val = sin(double alpha = beta: float);


Re[6]: О синтаксисе языков
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 11.01.12 10:49
Оценка:
Здравствуйте, Mystic, Вы писали:

M>Мне тут не нравится, что при увеличении количества параметров, их надо криво записывать в столбик. При этом последний параметр не закомментируешь просто.


M>
M>  CreateProcess( 
M>    .arg1 = 1,
M>    .arg2 = 2,
M>    .arg3 = 3,
M>    .arg4 = 4); // Бу-э-э-э... Неудобно, неэстетично
M>


Переходи на питон. Там все подобные списки через запятую могут иметь запятую перед скобкой, она ни на что не влияет.
The God is real, unless declared integer.
Re[6]: О синтаксисе языков
От: x-code  
Дата: 11.01.12 12:50
Оценка:
Здравствуйте, Mystic, Вы писали:

M>Мне тут не нравится, что при увеличении количества параметров, их надо криво записывать в столбик. При этом последний параметр не закомментируешь просто.


M>
M>  CreateProcess( 
M>    .arg1 = 1,
M>    .arg2 = 2,
M>    .arg3 = 3,
M>    .arg4 = 4); // Бу-э-э-э... Неудобно, неэстетично
M>


Скобочку можно поставить сразу на новой строке. И уж всяко такой вариант приятнее чем адопаскалевское нагромождение begin и end
Наличие в конце после последнего аргумента запятой, после которой ничего нет, можно сделать допустимым — как в enum'ах, это ни на что не повлияет по идее.
Re[5]: О синтаксисе языков
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 15.01.12 21:12
Оценка:
XC>
// допустим, почти обычное "сишное" объявление функции
XC>void Foo(int x=0,y=0,z=0) {}
XC>Foo(.z=100, .y=200);


XC>А стрелочку => нефиг тратить на всякую фигню, это идеальный по компактности и наглядности оператор для лямбда-функций и функциональных типов.


точку тоже лень тратить на такую ерунду, тем более запись "x = 100"(или "x:100") и так достаточно однозначна.
точка удобна для кратких лямбд
users.where(.age > 21).order-by(.name) //вместо users.where(item => item.age > 21).order-by(item => item.name)
Re[6]: О синтаксисе языков
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 16.01.12 05:41
Оценка:
Здравствуйте, DarkGray, Вы писали:

XC>>void Foo(int x=0,y=0,z=0) {}

XC>>Foo(.z=100, .y=200);[/code]

DG>точку тоже лень тратить на такую ерунду, тем более запись "x = 100"(или "x:100") и так достаточно однозначна.


Это значит несовместимое изменение синтаксиса C/C++ — потому что сейчас можно так записать присвоение переменной при вызове функции. А с точкой такой проблемы нет.

DG>точка удобна для кратких лямбд


Для этого можно и особый контекст определить.
The God is real, unless declared integer.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.