[nem-pl] Varianty, a ToString
Michal Moskal
malekith at pld-linux.org
Sun May 9 22:07:02 CEST 2004
On Sun, May 09, 2004 at 10:03:57PM +0200, rzyjontko wrote:
> Michal Moskal wrote:
> >
> > > Rozumiem, że kompilator nemerle ma być jedynym programem w nemerle?
> >
> > To przykład standardowej (a może nawet ponadstandardowej) gęstości
> > użycia.
>
> Standardowej gęstości użyca Appenda, czy standardowej gęstości użycia
> nemerle?
Appenda. Nemerle to chyba 1:2^20 a nie 1:2^10 ;)
> > BTW: można już definiować składniki w wariantach, jeśli (x:'a) to
> > x.ToString() również działa.
>
> Czy to oznacza, że można już dodawać metody do variantów? Jeśli tak,
> to jak?
>
> Bo x.ToString () działa dla każdego typu, który się przerzutuje na
> Object. Dla wariantów wyświetla nazwę konstruktora.
namespace Nemerle.Core {
public variant list <'a>
{
| Cons { hd : 'a; tl : list <'a>; }
| Nil {}
public override ToString () : string
{
def sb = System.Text.StringBuilder ("[");
def loop (lst) {
| [x] =>
sb.Append (x.ToString ()).Append ("]").ToString ()
| x :: xs =>
ignore (sb.Append (x.ToString ()).Append (", "));
loop (xs)
| [] => "[]"
};
loop (this)
}
}
}
to z lib/list.n w svn.
--
: Michal Moskal :: http://www.kernel.pl/~malekith :: GCS !tv h e>+++ b++
: When in doubt, use brute force. -- Ken Thompson :: UL++++$ C++ E--- a?
More information about the devel-pl
mailing list