Здравствуйте, Аноним, Вы писали:
А>....(<[2+2]>)=<[4]> А>....(<[2-mama+2]>)=<[4-mama]>
Не знаю сможет ли компилятор сделать последнее, но сама свертка выражений есть в сборке Nemerle.Compiler.dll пространство имен Nemerle.Compiler модуль ConstantFolder, поддерживает свертку выражений PExpr методом FoldConstants или типизированных TExpr методом FoldTyped.
Re: Есть ли в компиляторе функция свертки константных выражений?
Здравствуйте, hardcase, Вы писали:
А>>....(<[2+2]>)=<[4]> А>>....(<[2-mama+2]>)=<[4-mama]>
H>Есть, но тупой. Первое умеет. Второе — нет.
Со вторым проблема в том, что без знания о типе переменной нельзя сказать допустимо ли такое переписывание или нет. Это только в операциях над целыми порядок не важен, а если это пользовательский тип, то не факт, что он не рассчитывает на порядок. Например, "+" для строк не переживает перестановки аргументов.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Есть ли в компиляторе функция свертки константных выражений?
Здравствуйте, VladD2, Вы писали:
VD>Со вторым проблема в том, что без знания о типе переменной нельзя сказать допустимо ли такое переписывание или нет.
А разве для первого не нужно знание типа?
... << RSDN@Home 1.2.0 alpha 5 rev. 69>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Есть ли в компиляторе функция свертки константных выражений?