Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.221.154.151] |
|
Страницы: (56) « Первая ... 37 38 [39] 40 41 ... 55 56 ( Перейти к последнему сообщению ) |
Сообщ.
#571
,
|
|
|
Цитата D_KEY @ У сей свои ребусы еще похлеще:В сишных объявлениях и то больше логики, там по крайней мере как пишем, так и используем. А тут все наоборот: void (*foo(int, void (*bar)(int)))(int); Расшифруй навскидку, что такое foo. И насколько оно визуально соответствует декларации. |
Сообщ.
#572
,
|
|
|
Давай я попробую:
Скрытый текст Функция, принимающая в качестве параметров целое и указатель на функцию (принимающую целое и не возвращающую значение - void(int) ) и возвращающая указатель на такую же функцию void(int) ), как в параметре. |
Сообщ.
#573
,
|
|
|
Цитата amk @ Мододец. Давай я попробую: |
Сообщ.
#574
,
|
|
|
Цитата applegame @ У сей свои ребусы еще похлеще Да. Но там объявление типа полностью соответствует использованию операторов, с помощью которых сложный тип дает доступ к своим компонентам. В D это не так. А заговорил о связи объявлений и использования ты Цитата void (*foo(int, void (*bar)(int)))(int); Расшифруй навскидку, что такое foo. Там довольно простые правила. Прекрасно описанные в K&R. Другое дело, что читать это неприятно. amk выше правильно написал Цитата И насколько оно визуально соответствует декларации. Плохо соответствует. Но вообще тут в любом случае нужны typedef'ы, каким бы прекрасным не был синтаксис. ИМХО. |
Сообщ.
#575
,
|
|
|
Цитата D_KEY @ Связь должна быть визуальная, чтобы удобно было человеку, а не компилятору. Чтобы не надо было учить чтение объявлений по спирали и прочий brainfuck,Да. Но там объявление типа полностью соответствует использованию операторов, с помощью которых сложный тип дает доступ к своим компонентам. В D это не так. А заговорил о связи объявлений и использования ты Но мо собственно отклонились от первичного вопроса. Korvin спросил в чем преимущество D, я ответил, что в удобстве, которое кому-то может показаться наоборот неудобным. То есть преимущество выражается в конкретном человеке. Допустим я на D пишу гораздо быстрее и с меньшим числом ошибок, чем на C++, потому что многие конструкции и идиомы D мне проще и понятней для понимания, чем аналогичное в C++. А если взять, например Qraizer'а, то у него, возможно, все будет наоборот. Добавлено Цитата D_KEY @ Это да, typedef или дешный аналог - alias тут явно не помешал бы. Но вообще тут в любом случае нужны typedef'ы, каким бы прекрасным не был синтаксис. ИМХО. |
Сообщ.
#576
,
|
|
|
Цитата applegame @ Korvin спросил в чем преимущество D, я ответил, что в удобстве, которое кому-то может показаться наоборот неудобным. То есть преимущество выражается в конкретном человеке. Допустим я на D пишу гораздо быстрее и с меньшим числом ошибок, чем на C++, потому что многие конструкции и идиомы D мне проще и понятней для понимания, чем аналогичное в C++. А если взять, например Qraizer'а, то у него, возможно, все будет наоборот. Т.е. объективных преимуществ ты назвать не можешь? |
Сообщ.
#577
,
|
|
|
Цитата D_KEY @ Ну для тебя лично нет, ты ведь вообще не считаешь какие-либо преимущества одного языка перед другим объективными.Т.е. объективных преимуществ ты назвать не можешь? Сможешь ли ты назвать объективные преимущества C++ например, перед Visual Basic? Добавлено Если есть желание почитай статью Component programming with ranges Это не C++ vs D, и даже не преимущества D перед C++. Но любопытно, что для D это вполне идиоматичный код, а для C++ скорее экзотика. |
Сообщ.
#578
,
|
|
|
Я потратил на расшифровку столько времени, сколько понадобилось, чтобы написать пост. Даже меньше. Вообще-то это довольно простое объявление, бывают и позапутаннее.
Но, объявить typedef для функций аргумента и результата было бы немного нагляднее. Добавлено А хорошее имя для этого typedef'а ещё и немного прояснило бы назначение кода. |
Сообщ.
#579
,
|
|
|
В каком-то смысле синтаксис Си толкает людей на тайпдефы. А в других языках может возникнуть ложная иллюзия "итакпонятности".
|
Сообщ.
#580
,
|
|
|
С другой стороны, возможность в C описать чуть ли не любую конструкию одним объявлением порождает иногда такие шедевры...
Я один раз видел объявление длиной строк пять. Плотно заполненных, длиной символов 80. Это был пример для проверки утилиты расшифровки объявлений (забыл уже, как она называется). Как написал тот, кто его привёл: из небольших. |
Сообщ.
#581
,
|
|
|
Давно все сделано в Perl'е my %data; ${${$data{"зеленый"}}[6]}{"вес"} = [1,2,3,4,5]; #присваиваем хешу-массивов-хешей значение в виде массива |
Сообщ.
#582
,
|
|
|
Нифига непонятно. Что в результате получается-то?
И кто-нибудь может объяснить, нафига в Perl'е столько долларов и процентов перед идентификаторами? Автор языка разве финансистом был? Я слышал, что он лингвист. |
Сообщ.
#583
,
|
|
|
Цитата amk @ Чтобы легче парсилось, полагаю. И кто-нибудь может объяснить, нафига в Perl'е столько долларов и процентов перед идентификаторами? |
Сообщ.
#584
,
|
|
|
Цитата amk @ доллар обозначает, что значение -- скаляр, похож на букву "s" из соответствующего слова.И кто-нибудь может объяснить, нафига в Perl'е столько долларов и процентов перед идентификаторами? Автор языка разве финансистом был? Я слышал, что он лингвист. ps: код не промышленный, люди так не пишут Добавлено процент -- хеш-таблица, кружочки вокруг палочки (слеша) символизируют отображение одного значения на другое |
Сообщ.
#585
,
|
|
|
Цитата negram @ ps: код не промышленный Но хоть коммерческий? =) |