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