Re[8]: Развитие Nemerle
От: _Claus_  
Дата: 08.11.11 22:37
Оценка:
C>Ну, или как-то так.
Спасибо!
Re[14]: Развитие Nemerle
От: _Claus_  
Дата: 08.11.11 22:42
Оценка:
VD>В питоне (и Бу) просо нет понятия неизменяемой переменной. Потому и проблемы этой нет.
да есть в Boo — const называется.
Re[15]: Развитие Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.11.11 22:57
Оценка:
Здравствуйте, _Claus_, Вы писали:

VD>>В питоне (и Бу) просо нет понятия неизменяемой переменной. Потому и проблемы этой нет.

_C_>да есть в Boo — const называется.

Если я правильно понимаю, это совсем не то. В const скорее всего нельзя помещать ссылку на объект. Только на предопределенные типы вроде целых или строк (как в C#).

Ну, и как сам понимаешь идея объявлять что-то без декларации стразу идет лесом.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: Развитие Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.11.11 23:06
Оценка:
Здравствуйте, _Claus_, Вы писали:


H>>Нафига это может потребоваться?

_C_>чтобы не писать mutable-ы и def-ы перед переменными.

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

_C_>что это может вычислить компилятор.

_C_>я прикинул, мне, если портировать свой проект надо дописать
_C_>где-то 17 000 мутаблодефов (50к строк). чесслово — есть дела поважнее.

Дык, что толку то того, что переменные у тебя проскочат без изменения? Все равно весь остальной синтаксис другой. Уж лучше скомпилить имеющуюся версию на Бу с добавленным атрибутом InternalsVisibleToAttribute, что даст возможность развивать продукт на немерле не переписывая все. Или с помощью декомпилятора перевести код в C# или Nemerle, а дальше доработать напильником.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: Развитие Nemerle
От: _Claus_  
Дата: 09.11.11 00:59
Оценка:
VD>Дык, что толку то того, что переменные у тебя проскочат без изменения? Все равно весь остальной синтаксис другой. Уж лучше скомпилить имеющуюся версию на Бу с добавленным атрибутом InternalsVisibleToAttribute, что даст возможность развивать продукт на немерле не переписывая все. Или с помощью декомпилятора перевести код в C# или Nemerle, а дальше доработать напильником.

Языки похожи. если вы не дропнули вложенность отступами, то исходник Boo, не считая {}-замыканий и макросов, приводится к nemerle 1) удалением двоеточий; 2) заменой 'as' на двоеточие +
макрос for без скобок "for i in set_x" + те макросы в компилятор, о которых мы говорим.
Re[14]: Развитие Nemerle
От: _Claus_  
Дата: 09.11.11 01:06
Оценка:
>> Или с помощью декомпилятора перевести код в C# или Nemerle, а дальше доработать напильником.
а есть декомпилятор сразу в Nemerle?!
Re[15]: Развитие Nemerle
От: para  
Дата: 09.11.11 05:45
Оценка:
Здравствуйте, _Claus_, Вы писали:

_C_>Языки похожи. если вы не дропнули вложенность отступами, то исходник Boo, не считая {}-замыканий и макросов, приводится к nemerle 1) удалением двоеточий; 2) заменой 'as' на двоеточие +

_C_>макрос for без скобок "for i in set_x" + те макросы в компилятор, о которых мы говорим.

тогда надо ударить артиллерией и написать грамматику для БУ (или хотя бы нужное вам подмножество)
Re[15]: Развитие Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.11.11 10:26
Оценка:
Здравствуйте, _Claus_, Вы писали:

>>> Или с помощью декомпилятора перевести код в C# или Nemerle, а дальше доработать напильником.

_C_>а есть декомпилятор сразу в Nemerle?!

Да, но надо собирать самостоятельно и вручную кидать в каталог рефлектора (он умудряется не прописывать путь к себе нигде). Исходники лежат по пути Nemerle\tools\reflector-addon. Не уверен, только что он даст компилируемый код. Скорее всего придется дорабатывать напильником.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Развитие Nemerle
От: _Claus_  
Дата: 09.11.11 10:53
Оценка:
Здравствуйте, para, Вы писали:

P>Здравствуйте, _Claus_, Вы писали:


_C_>>Языки похожи. если вы не дропнули вложенность отступами, то исходник Boo, не считая {}-замыканий и макросов, приводится к nemerle 1) удалением двоеточий; 2) заменой 'as' на двоеточие +

_C_>>макрос for без скобок "for i in set_x" + те макросы в компилятор, о которых мы говорим.

P>тогда надо ударить артиллерией и написать грамматику для БУ (или хотя бы нужное вам подмножество)


НА Boo кроме меня и еще 3-х диверсантов никто серьезного не пишет. Время лучше потратить на что-то более полезное (CoffeeScript, Prolog, ..)
Re[14]: Развитие Nemerle
От: _Claus_  
Дата: 09.11.11 18:44
Оценка:
Не хочет компилится — показывает на эту строку и грит: type PExpr not supported for macro parameter

macro @:=(expr1 : PExpr, expr2 : PExpr)


Значит ли это, что компилятор надо тянуть из репозитория? у меня стоит майский 1.0 релиз..
или в чем другом?
Re[15]: Развитие Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.11.11 19:17
Оценка:
Здравствуйте, _Claus_, Вы писали:

_C_>Не хочет компилится — показывает на эту строку и грит: type PExpr not supported for macro parameter

_C_>macro @:=(expr1 : PExpr, expr2 : PExpr)
_C_>Значит ли это, что компилятор надо тянуть из репозитория? у меня стоит майский 1.0 релиз..
_C_>или в чем другом?

Не обязательно. Но взять последнюю бэту. В прочем, типы у параметров макросов можно просто стереть.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Развитие Nemerle
От: _Claus_  
Дата: 10.11.11 03:40
Оценка:
VD>Не обязательно. Но взять последнюю бэту. В прочем, типы у параметров макросов можно просто стереть.
Все ок.

Не получается тем же способом переопределить обычный = , это возможно? компилятор вроде как макрос не видит, что с ним, что без него — ошибки одинаковые.
Re[17]: Развитие Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.11.11 10:57
Оценка:
Здравствуйте, _Claus_, Вы писали:

_C_>Не получается тем же способом переопределить обычный = , это возможно?


Краткий ответ — нет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: Развитие Nemerle
От: _Claus_  
Дата: 11.11.11 22:29
Оценка:
VD>Краткий ответ — нет.

Надеюсь это не идеологический запрет, а временная трудность, ибо в DSL-лях нужно бывает особое "равно"

вот такой код не хочет работать с макросом

class m
s := 0

//parse error near operator `:=': expecting `=', `;' or `{' in field / property declaration
но такой принимает

class m
mutable s = 0

т. е. развертка макроса в контексте класса недопустима или не всегда допустима? хм..
Re[19]: Развитие Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.11.11 23:25
Оценка:
Здравствуйте, _Claus_, Вы писали:

_C_>Надеюсь это не идеологический запрет, а временная трудность, ибо в DSL-лях нужно бывает особое "равно"


В ДСЛ-ях можно интерпретировть АСТ совсем по другому. Но в рамках Немерле создать макрос "=" нельзя.

_C_>вот такой код не хочет работать с макросом

_C_>class m
_C_> s := 0

Естественно. Это тело класса тут ожидаются его члены.

_C_>т. е. развертка макроса в контексте класса недопустима или не всегда допустима? хм..


Макросы бывают разные. Макросы уровня выражения могут использоваться только там где ожидается выражение.
Прочти вот это
Автор(ы): Чистяков Владислав Юрьевич
Дата: 22.09.2011
Данная часть посвящена макросам Nemerle.
. Там рассказывается о типах макросов.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[19]: Развитие Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.11.11 23:30
Оценка:
Здравствуйте, _Claus_, Вы писали:

_C_>class m

_C_> s := 0

Еще раз повторюсь, что идея сэмулировать на немерле питон — это плохая идея. Как минимум макры Немерле 1.х не настолько гибки чтобы воспроизвести все нюансы синтаксиса питона. Лучше выбрать другой подход.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.