[nem-pl] Varianty, a ToString

Kamil Skalski nazgul at omega.pl
Sun May 9 16:19:36 CEST 2004


Sunday 09 May 2004 16:10, rzyjontko wrote:
> Michal Moskal wrote:
> > class list_base {
> > 	override ToString () : string
> > 	{
> > 		match ((this :> list)) {
> >
> > 	 		| Cons ... =>
> > 			|
> > 			| Nil => ...
> >
> > 		}
> > 	}
> > }
> >
> > variant list : list_base {
> >
> >   | Cons
> >   | Nil
> >
> > }
>
> No i na takie coś chyba możnaby przekładać metody w wariantach, tylko
> że z bardziej intuicyjną składnią.

Raczej nie, bo jak zrobić dziedziczenie po jakiejś klasie, skoro lista już by 
"wewnętrznie" po czymś dziedziczyła? Trzeba dodawać metody bezpośrednio do 
klasy list, co zresztą powinno być nawet prostsze.

>
>
> W takim razie taka powinna być biblioteczna implementacja listy.  To
> znaczy powinna zawierać metody ToString i Equals, które będą działać
> zgodnie z oczekiwaniami użytkownika.

Jestem za.

>
> Bo w tej chwili lista ma metody ToString i Equals, ale one nie
> działają tak, jakby się tego spodziewał użytkownik.
>
> Osobiście byłbym również za tym, żeby funkcjonalność modułu List
> przenieść do metod obiektów typu list.

Jestem za. I wtedy można będzie zrobić GetEnumerator, i używać forech na 
liście.




More information about the devel-pl mailing list