Re[26]: Оффтопик: Nemerle
От: WolfHound  
Дата: 11.09.06 11:54
Оценка:
Здравствуйте, Andrei N.Sobchuck, Вы писали:

ANS>Нафиг-нафиг такой ответ. Еще раз, нужно не переписать программу один в один (чем и занимается компилятор), а написать ОО программу, которая давала бы тайкой же результат. Ы?

Иди сюда и попробуй переписать SprintTyExpr в ОО стиле
Особенно мне интересно что ты будешь делать с подобными выкрутасами:
        // the special case for unary operators
        | TT.TExpr.Call (TT.TExpr.OpCode (name), [parm], _) =>
          append (name);
          append ("(");
          recurse (parm.expr);
          append (")");

        // the special case for infix binary operators
        | TT.TExpr.Call (TT.TExpr.OpCode (name), [parm1, parm2], _) =>
          append ("(");
          recurse (parm1.expr);
          append (" " + name + " ");
          recurse (parm2.expr);
          append (")")

        // pretty print the list constructors
        | TT.TExpr.Call (TT.TExpr.StaticRef (_, mem, _), _, _) when is_list_cons (mem) =>
          print_list_constructors (expr)
              
        // write all the other calls in prefix form 
        | TT.TExpr.Call (func /* PExpr */, parms /* list [Parm] */, _) =>
          recurse (func);
          append (" (");
          print_fun_call_parms (parms);
          append (")")
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.