Pardon, tam tersi. Birinci ile ikinci laflarinin yerini degistirin. --- nusret <[EMAIL PROTECTED]> wrote:
> Eveet, kendi emailime cevap veriyorum: kimseyi osuna > yormamis olayim ;-). Asagidaki cevap Frode Vatvedt > Fjeld adli zata ait. Bu dinamik binding olayini > ogrenmek birsey degildi de, alismak zaman alacak > biraz > benim icin ;-). Bir yerde "Fortran (veya C) > bilmeyenler Lisp'i birkac gunde, bilenler ancak > birkac > ilda ogrenir ) diye bir laf gormustum, dogru mu > acaba > diye pirelenmeye basladim ;-). Neyse iste fark: > > (defun f (x) > (print x) > (let ((*print-base* 16)) > (f y))) > > ile > > (defun tco-f (x) > (tagbody restart-f > (print x) > (let ((*print-base* 16)) > (setf x y) (go restart-f)))) > > yapilarini karsilastirirsaniz, tail recursion > optimizasyonu olmadan birincinin x'i daima > *print-base* daha once neyse oyle yazacagini, > ikincinin (ki birincinin TCO uygulanmis haline > esdeger) ilk defa orijinal fonksiyon gibi, ardindan > ise 16 tabaninda yazacagini goreceksiniz (denemedim, > ama oyle olmasi lazim). > > KISSADAN HISSE: Ozyineli fonksiyonlari optimize > etmeden iki kere dusunun! Eger fonksiyonun icinde > dinamik bagladiginiz bir degisken varsa ve bir > sekilde > onun degerini degistiriyorsaniz, programinizda sorun > var demektir! Ya sadece lexical binding ile > bagladiginiz degiskenleri kullanin, veya illa ki > dinamik degiskenleri kullanancaksaniz fonksiyonun > icinde bunun degerini degistirip de tail recursion > yapmayin. > > NOT: Ben daha lispi yeni ogreniyorum, benim > yazdiklarimi kontrol etmeden dogru gibi algilamayin. > Sadece anladigimi ve ogrendigimi dusundugum (ve > okudugum kitapta da henuz acikca bulamadigim) bir > noktayi sizlerle paylasmak istedim. > > Nusret > > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam > protection around > http://mail.yahoo.com > > _______________________________________________ > cs-lisp mailing list > [email protected] > http://church.cs.bilgi.edu.tr/lcg > http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com _______________________________________________ cs-lisp mailing list [email protected] http://church.cs.bilgi.edu.tr/lcg http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp

