On 2/21/07, Volkan YAZICI <[EMAIL PROTECTED]> wrote:
Merhaba,Bildiğim kadarı ile FLET lexical scope'ta geçerli oluyor. Şöyle ki: (defun cons-test (p q) (cons p q)) (defun mapcar-test (proc lst) (if (null lst) '() (cons-test (funcall proc (first lst)) (mapcar-test proc (rest lst))))) (flet ((cons-test (p q) (cons 1 (cons p q)))) (mapcar-test #'(lambda (p) (* p 2)) '(1 2 3 4))) => '(2 4 6 8) MAPCAR-TEST, FLET tarafından tanıtılan CONS-TEST'i dikkate almadı. Bu sebeple özellikle fonksiyonların dynamic scope'ta değerini nasıl gölgeleyebileceğimizi sormuştum.
Eger degistirmis olsaydi bile cons-test cons'u kullandigi icin sonsuz donguye girmis olacaktik. cons kullanmayan cons'un yerine gececek herhangi bir fonksiyon yazmak da pek kolay degil. Ama lisp'de esas cons'a ulasmanin da bir yontemi vardir mutlaka, o sekilde yapilabilirdi. -- Mehmet
_______________________________________________ cs-lisp mailing list [email protected] http://church.cs.bilgi.edu.tr/lcg http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp

