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

Cevap