Re: Nemerle – вопросы дизайна
От: _nn_ www.nemerleweb.com
Дата: 20.09.11 08:11
Оценка:
Здравствуйте, Чистяков Владислав Юрьевич, Вы писали:

ЧВЮ>Статья:

ЧВЮ>Nemerle – вопросы дизайна
Автор(ы): Чистяков Владислав Юрьевич
Дата: 20.02.2012
Те, кто начинает изучать язык программирования Nemerle после C#, зачастую задаются вопросом, почему при общей похожести языков в Nemerle введены те или иные синтаксические отличия. Эта статься посвящена описанию отличий и объяснению причин их возникновения.


ЧВЮ>Авторы:

ЧВЮ> Чистяков Владислав Юрьевич

ЧВЮ>Аннотация:

ЧВЮ>Те, кто начинает изучать язык программирования Nemerle после C#, зачастую задаются вопросом, почему при общей похожести языков в Nemerle введены те или иные синтаксические отличия. Эта статься посвящена описанию отличий и объяснению причин их возникновения.


Насчет скобочек, было бы хорошо добавить ссылку: http://en.csharp-online.net/ECMA-334%3A_9.2.3_Grammar_ambiguities
Меньше вопросов будет.

В многомерных массивах было бы хорошо подчеркнуть о необходимости ".": array.[2][[42, 1], [33, 2]]

Опечатка в таблице :

var ary = new[,] { { 42, 1 }, { 33, 2 } };


def ary = array.[2][[42]];


Console.WriteLine(ary[0, 0]);


def ary = array.[2][[42, 1], [33, 2]];

Про списки стоило бы сделать отдельный заголовок.
Это ведь не массивы.
Да и поддержка у них в Nemerle 1.0 получше чем у массивов: Операция ::, Pattern Matching, List comprehension ну и т.п.


Насчет присваивания, стоит подчеркнуть, что это позволяет избежать неоднозначности и сложных выражений типа:
int a = 1;
if (a++ == --a) {}

int a = 0, b = 0, c = 0;
while ( (a = b = ++b + c) == ++a) { }

И классика :
int a = 0;
a = a++ + ++a;
http://rsdn.nemerleweb.com
http://nemerleweb.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.