On Oct 15 05:53, Volkan YAZICI wrote:
> Konu ile ilgili olarak "fluids" ve "dynamic root" ...

Efendim, problemimi fluid'ler ile bir kaç define-syntax tanımlamasında
bulunarak şu şekilde halletim:

;
; fluid-let'e seçenek olarak geçilen tanımlamalar sadece fluid-let
; scope'u süresince geçerli olacaklar. (Çoğu Scheme implementasyonunda
; öntamılı olarak gelmesine rağmen, Guile için fluid-let'i kendim
; oluşturmak zorunda kaldım.)
;
(syntax-rules ()
  ((fluid-let ((var1 val1)
               (var2 val2)
               ...)
     body1
     body2
     ...)

   (let ((var1 (make-fluid))
         (var2 (make-fluid))
         ...)
     (fluid-set! var1 val1)
     (fluid-set! var2 val2)
     ...
     (let ((var1 (fluid-ref var1))
           (var2 (fluid-ref var2))
           ...)
       body1
       body2
       ...)))))

Kullanımına şu şekilde bir örnek verilebilir:

guile> (define glob #t)
guile> (fluid-let ((glob glob))
...   (set! glob #f))
guile> glob
#t


İyi çalışmalar.

_______________________________________________
cs-lisp mailing list
[email protected]
http://church.cs.bilgi.edu.tr/lcg
http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp

Cevap