[nem-pl] troche javizacji do csharpizacji ?

Kamil Skalski nazgul at omega.pl
Fri Feb 6 18:16:50 CET 2004


Friday 06 of February 2004 17:20, Michal Moskal wrote:
> On Thu, Feb 05, 2004 at 02:49:16PM +0100, Kamil Skalski wrote:
> > A patrzyłeś na nasze (nie jest to jeszcze to co byśmy chcieli, bo nie
> > mamy properties i nie możemy być zgodniz API .Netu) i C#-owe 'foreach'?
> >
> > def l = array [1, 2, 3, 4, 5, 6];
> > foreach (x : int in l)   ( : int może być inferowane)
> >   printf ("%d\n", x);
> >
> > w C#
> > foreach (int x in l)
> >   System.Console.WriteLine ("{0}", x)
> >
> > to znaczy to wszystko działa na klasach posiadających Enumerator (z
> > IEnumerator) - nie jestem pewien, czy akurat array go ma ;-)
>
> Ma. Aczkolwiek warto by zrobić tak, że jak widzi tablice to generuje
> specjalizowany kod:
>
>   for (mutable i <- 0; i < ar.Length; i <- i + 1) {
>     def x = ar[i];
>     ...
>   }
>
> Ponieważ jest on szybszy (nie trzeba tworzyć enumeratora, wywoływać
> metod etc). To by zawsze jakaś przewaga nad C# była ;)

Możemy się kiedyś pobawić w optymalizację za pomocą typowanych makr, ale może 
jednak najpierw doróbmy to co jest potrzebne do enumeratorów, czyli 
properties :)





More information about the devel-pl mailing list