[nem-pl] in_tail_position
Marcin 'Qrczak' Kowalczyk
qrczak at knm.org.pl
Fri Mar 12 14:37:12 CET 2004
W liście z pią, 12-03-2004, godz. 14:28, Lukasz Kaiser pisze:
> append ( pointerless x, y ) { match x with
> | Nil => y
> | z :: zs => z :: append ( zs, y )
> }
>
> Pierwsza optymalizacja powinna spowodowac, ze to bedzie ogonowe,
> czyli zamiast wywolania { v <- append ( zs, y ); Cons ( z, v ) ; }
> bedzie { v <- Cons ( null, null ) ; v.hd <- z ; v.tl <- append ( zs, y ); }.
To nie jest ogonowe: oistatnią operacją jest przypisanie, a nie append.
Chyba żeby został użyty inny interfejs appenda, który zamiast zwracać
wynik jako wynik, umieści go w miejscu przekazanym przez argument.
--
__("< Marcin Kowalczyk
\__/ qrczak at knm.org.pl
^^ http://qrnik.knm.org.pl/~qrczak/
More information about the devel-pl
mailing list