Re[10]: Не пора ли нам перейти на D
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.02.07 17:25
Оценка:
Здравствуйте, Слоноежик, Вы писали:

С>и макроса который заставляет вычислить ф-цию в время компиляции


С>
С>template eval(A...) { alias A eval; }

С>//использование
С>static result = eval!(factorial(5));

С>


С>И в отличии от Nemerle не надо для каждой функции писать макрос обертку.


Дык, интерпретатор ведь.

ОК. Уложним условие. Попробуй создать аналог вот такой примитивной вещи:
macro LoadStringLiteralFromFile(fileName : string)
{
  def str File.ReadAllText(fileName);
    <[ $(str : string) ]>
}

Что не выходит?

VD>>В обличии от D или C++ мы вольны произвести в макросе вычисления любой сложности. Так если у нас уже есть нужная функция которую нужно вычислить во время компиляции, то мы просто вызваем ее в макросе и получаем требуемый результатм.

VD>>То есть для нас нет разницы между кодом программы и метакодом. В D же и в С++ мы вынждены писать метакод на птичьех языках которые сильно отличаются от того языка что мы вынуждены применять в реальной программе.
С>Ну D это уже не относится.

Еще как отностися. Метакод в D пишется не на базовом D, а на статических расширениях.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.