>>>>> "ES" == Emre Sevinc <[EMAIL PROTECTED]> writes:
[...]
    ES> Şimdi tabii benim kafam karıştı, o LOOP'un içindeki
    ES> present-symbols sözdiziminin tekabül ettiği şey ile bu
    ES> do-symbols'un ele aldığı şey bana mı farklı görünüyor
    ES> gerçekten farklı mı filan.

Bilmem.  Hyperspec ne diyor?

[...]
    >> icin ne yapilabilir?  Bu durumda boundp nil verecek, ama *foo*
    >> pesinde oldugumuz speciallardan biri.  Lispimiz onun special
    >> oldugunu biliyor, fakat biz kolayca ogrenemiyoruz.  Bunu ANSI
    >> CL'de deneme yaparak cikartmaktan baska yol gozukmuyor _bana_.

    ES> Deneme yapmak derken?

Mesela 

CL-USER> (let ((foo 25)) (boundp 'foo))
NIL ;; neden?  foo lexical cunku

CL-USER> (defvar foo)
FOO ;; simdi special olaral declaim edildi hep sepcial

CL-USER> (let ((foo 25)) (boundp 'foo))
T   ;; yaa iste o binding special binding onun icin boundp gordu

;; pekiyi oyleyse 
CL-USER> (defun specialp (symbol) (eval `(let ((,symbol 25)) (boundp 
',symbol))))
SPECIALP
CL-USER> (specialp 'foo)
T 
CL-USER> (specialp 'bar)
NIL ;; yeni sembol 

Ama ne o oyle eval meval?  Deniyoruz yani.  (ben burada aciklayici olsun 
diye sbcl'in dondurdugu gurultuyu sildim.  Ciddi ciddi boyle denemek isteyen 

(defun specialp (symbol) 
  (handler-bind ((warning #'muffle-warning))  
    (eval `(let ((,symbol 25)) (boundp ',symbol)))))

kullanabilir.  Ek lazim tabii.  Mesela keyword veriseniz ne oluyor?  
Neden?  

Heyneyse kastettigim buydu.  Lisp birsey biliyor, biz bunu biliyor musun 
diye soramuyoruz deney yaparak buluyoruz.  

[...]
    ES> Bir sonraki ANSI komite toplantısına dahil mi olsak n'apsak? 
    ES> ;-) [...]

Heh.  KMP ile konus bunu.

BM


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

Cevap