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.


İyi çalışmalar.

_______________________________________________
cs-lisp mailing list
cs-lisp@cs.bilgi.edu.tr
http://church.cs.bilgi.edu.tr/lcg
http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp

Cevap