Здравствуйте, Oyster, Вы писали:
O>Но так — без обрамляющего макроса и с величинами, заданными постфиксом, — по-моему точно не выйдет (у всего есть предел ):
А по-моему выйдет.
namespace My.Phys
{
[assembly: Nemerle.Internal.OperatorAttribute ("My.Phys", "kg", true, 283, 284)]
[assembly: Nemerle.Internal.OperatorAttribute ("My.Phys", "sec", true, 283, 284)]
macro @kg(val)
{
<[ do_something_crazy_with_kg($val) ]>
}
macro @sec(val)
{
<[ do_something_crazy_with_sec($val) ]>
}
}
using System;
using My.Phys;
module Main
{
do_something_crazy_with_kg(val : double) : double
{
val
}
do_something_crazy_with_sec(val : double) : double
{
val
}
Main() : void
{
Console.WriteLine(100.0 kg);
Console.WriteLine(100.0 kg);
Console.WriteLine(20.0 sec);
Console.WriteLine(100.0 kg * 20.0 sec);
}
}