[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