Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Слоноежик, Вы писали:
[много всего вытоптано]
VD>ОК. Уложним условие. Попробуй создать аналог вот такой примитивной вещи:
VD>VD>macro LoadStringLiteralFromFile(fileName : string)
VD>{
VD> def str File.ReadAllText(fileName);
VD> <[ $(str : string) ]>
VD>}
VD>
VD>Что не выходит?
Нет. Но я ни капельки даже не расстроен. Никто вообще и не говорил что круче D только яйца, а про то что Nemerle есть Слово Господне... (ну в крайнем случае идеальный язык всех времен и народов) по крайней мере на этом форуме твердится постоянно.
Относительно примера — вызов метода из рантайма во время компиляции — это конечно интересная идея, но на практике это есть великое зло.
VD>>>В обличии от D или C++ мы вольны произвести в макросе вычисления любой сложности. Так если у нас уже есть нужная функция которую нужно вычислить во время компиляции, то мы просто вызваем ее в макросе и получаем требуемый результатм.
VD>>>То есть для нас нет разницы между кодом программы и метакодом. В D же и в С++ мы вынждены писать метакод на птичьех языках которые сильно отличаются от того языка что мы вынуждены применять в реальной программе.
С>>Ну D это уже не относится.
VD>Еще как отностися. Метакод в D пишется не на базовом D, а на статических расширениях.
И что из этого. Правильное решение. D как впрочем и CLI не может гарантировать отсутсвие побочных эффектов. Сомневаюсь — что кому нибудь понравится функция которая вычисляет правильное значение только по чертвергам в полнолуние.
На сим откланяюсь.
P.S. Принимать участие в дальнейшем флейме не вижу никакого смысла.