Здравствуйте, Алексей П, Вы писали:
АП>Здравствуйте, Mckey, Вы писали:
M>>Почему в ниже приведенном коде компилятор ругается если заменить Строку 1 на закоментированную Строку 2
АП>Потому что связываемые значения должны начинаться с маленькой буквы. Ограничение, кажется, искусственное.
Это где-нить в документации описывается? Мне кажеться я не встречал такого...
Делай добро и бросай его в воду...
Re[2]: [Nemerle] Непонятки с variant-ами и match-ингом
Здравствуйте, Lazy Cjow Rhrr, Вы писали:
M>>>Почему в ниже приведенном коде компилятор ругается если заменить Строку 1 на закоментированную Строку 2 ie>>Это баг, запости в багтрэккер. LCR>В Немерле конструкторы алгебраических типов не различаются по первой заглавной букве?
Да, имена вариантов должны начинаться с заглавной, если ты об этом.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Превратим окружающую нас среду в воскресенье.
Re[3]: [Nemerle] Непонятки с variant-ами и match-ингом
Здравствуйте, Mckey, Вы писали:
АП>>Потому что связываемые значения должны начинаться с маленькой буквы. Ограничение, кажется, искусственное. M>Это где-нить в документации описывается? Мне кажеться я не встречал такого...
Я не встречал даже документации
А если серьезно, то ИМХО не видно причин для такого ограничения.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Превратим окружающую нас среду в воскресенье.
Re[4]: [Nemerle] Непонятки с variant-ами и match-ингом
Здравствуйте, ie, Вы писали:
ie>Здравствуйте, Mckey, Вы писали:
АП>>>Потому что связываемые значения должны начинаться с маленькой буквы. Ограничение, кажется, искусственное. M>>Это где-нить в документации описывается? Мне кажеться я не встречал такого...
ie>Я не встречал даже документации ie>А если серьезно, то ИМХО не видно причин для такого ограничения.
ie,
ie>>>Это баг, запости в багтрэккер. LCR>>В Немерле конструкторы алгебраических типов не различаются по первой заглавной букве? ie>Да, имена вариантов должны начинаться с заглавной, если ты об этом.
Тогда почему это баг? N1 (или N2) в таком случае может трактоваться двояко — конструктор или переменная. Конструктор без параметров может быть?
Здравствуйте, Lazy Cjow Rhrr, Вы писали:
LCR>>>В Немерле конструкторы алгебраических типов не различаются по первой заглавной букве? ie>>Да, имена вариантов должны начинаться с заглавной, если ты об этом.
LCR>Конструктор без параметров может быть?
Может, а паттерном может быть еще и конструктор, у которого вообще-то есть параметры, но они не указаны — просто проверка типа. И связывание параметров по именам тоже бывает.
Re[6]: [Nemerle] Непонятки с variant-ами и match-ингом
Алексей П,
LCR>>>>В Немерле конструкторы алгебраических типов не различаются по первой заглавной букве? ie>>>Да, имена вариантов должны начинаться с заглавной, если ты об этом. LCR>>Конструктор без параметров может быть?
АП>Может, а паттерном может быть еще и конструктор, у которого вообще-то есть параметры, но они не указаны — просто проверка типа. И связывание параметров по именам тоже бывает.
Здравствуйте, Lazy Cjow Rhrr, Вы писали:
АП>>Может, а паттерном может быть еще и конструктор, у которого вообще-то есть параметры, но они не указаны — просто проверка типа. И связывание параметров по именам тоже бывает. LCR>Ну вот, получается что это не баг, а фича...
Убедили Как-то не додумал с ходу до такой ситуации
... << RSDN@Home 1.2.0 alpha rev. 0>>
Превратим окружающую нас среду в воскресенье.
Re[2]: [Nemerle] Непонятки с variant-ами и match-ингом
Здравствуйте, ie, Вы писали:
M>>Почему в ниже приведенном коде компилятор ругается если заменить Строку 1 на закоментированную Строку 2
ie>Это баг, запости в багтрэккер.
Забавный такой баг. Компилятор явно знает о нем и выдает предупреждение, что мол так делать нельзя.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: [Nemerle] Непонятки с variant-ами и match-ингом
Здравствуйте, Lazy Cjow Rhrr, Вы писали:
LCR>Тогда почему это баг? N1 (или N2) в таком случае может трактоваться двояко — конструктор или переменная. Конструктор без параметров может быть?
С чего ж он будет двояко то трактоваться? Пересечение имен ведь нет. Ограничение, по-моему, надуманное. Ведь я без проблем могу создать класс имя кторого начинается с маленькой буквы и поля называть тоже по любому могу.
В общем, это они с других языков содрали, а зачем видимо не подумали.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: [Nemerle] Непонятки с variant-ами и match-ингом
VD>В общем, это они с других языков содрали, а зачем видимо не подумали.
Для порядку Называть классы с маленькой буквы весьма нехорошо. Еще мне нравится, что имена, начинающиеся с подчеркивания, имеют особый смысл — хаос со всякими __ в С++ довольно раздражает.
Re[7]: [Nemerle] Непонятки с variant-ами и match-ингом
Здравствуйте, Алексей П, Вы писали:
АП>Для порядку Называть классы с маленькой буквы весьма нехорошо. Еще мне нравится, что имена, начинающиеся с подчеркивания, имеют особый смысл — хаос со всякими __ в С++ довольно раздражает.
Термины "хорошо"/"не хорошо" ни к чему когда обсуждаются термины "можно"/"нельзя".
Иными словами препочтения и правила это одно. А возможности это другое.
Позволять называть классы и их поля как угодно, и при этом ограничивать именование вариантов — это непоследовательно и не размуно.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: [Nemerle] Непонятки с variant-ами и match-ингом
Здравствуйте, ie, Вы писали:
ie>Здравствуйте, Mckey, Вы писали:
M>>Почему в ниже приведенном коде компилятор ругается если заменить Строку 1 на закоментированную Строку 2
ie>Это баг, запости в багтрэккер.
Re[6]: [Nemerle] Непонятки с variant-ами и match-ингом
От:
Аноним
Дата:
17.01.07 00:13
Оценка:
Здравствуйте, VladD2, Вы писали:
VD>С чего ж он будет двояко то трактоваться? Пересечение имен ведь нет. Ограничение, по-моему, надуманное. Ведь я без проблем могу создать класс имя кторого начинается с маленькой буквы и поля называть тоже по любому могу.
VD>В общем, это они с других языков содрали, а зачем видимо не подумали.
Как такое рулим?:
variant N
| N1
| N2
variant X
| X1 { x:N }
match (x)
| X1(N3) => "N3"
| X1(N1) => "N1"
| X1(n1) => "n1"
Re[7]: [Nemerle] Непонятки с variant-ами и match-ингом
Как минимум некрасиво. Это то же самое, что требовать скобочки для любого энума или константы. Немного усложни пример, и ты сам потеряешься в скобках:
data Day = Sun | Mon | Tue | Wed | Thu | Fri | Sat
data Month = Jan | Feb | Mar | Jun | Jul | Aug | Sep| Oct | Nov | Dec
data Season = Spring | Summer | Autumn | Winter