Bulent Murtezaoglu wrote:
"ES" == Emre Sevinc <[EMAIL PROTECTED]> writes:
ES> - Continuation'lari Java'da uygulamak mümkün mü? (Bu CBC
ES> tarafindan sorulmustu, tam olarak ne ile ilgili sorulmustu
ES> simdi hatirlamiyorum).
Bilmiyorum bunu. Continuation'i dikkatli tarif etmek lazim. 'Full'
continuation uretmek CL'de de zor. Bir suru komplikasyon cikiyor.
Manasi da belli olmuyor: unwind-protect'in korudugu bir bolumun dinamik
olarak altinda kalan (dynamic contour'unda) bir yerde continuation kapip
saklarsan ne oluyor mesela? (bu klasik ornektir). Diger taraftan iyice
sulandirirsan C'deki setjmp/longjmp da continuation olarak dusunulebilir.
;; şu kodu schemede yazıp sormuştum emrenin bahsettiği soruyu:
(define make-n-tuple
(lambda (n symbol)
(cond ((<= n 0) '())
(else (cons symbol (make-n-tuple (- n 1) symbol))))))
(define make-tupleable-symbol
(lambda (symbol)
(lambda (n)
(make-n-tuple n symbol))))
;; şöyle çağırdığınızda
((make-tupleable-symbol 21) 12)
;; şu geliyor
(21 21 21 21 21 21 21 21 21 21 21 21)
sanki sıralı çağrım gibi birşey oluyor. ilk çağrımda ilk parametre, 2.
çağrımda 2. parametreyi veriyormuşsun gibi gözüküyor. bunu nasıl yaparız
javada demiş idim.
Google'a "upward continuation", "downward continuation" filan yedir
istersen.
Graham'in On Lisp'inde CL'de kisitli bir call/cc ornegi olmasi lazim.
Bu konuya iyice hakim olmanin bir yolu Scheme ile o tarzda bol bol
program yazmak veya en azindan okumak. SICP'de yok bu yanlis
hatirlamiyorsam. Hangi kitap iyi anlatiyor da bilmiyorum. Ciddi
schemeciler balki bir kaynak verirler?
[ ... ]
_______________________________________________
cs-lisp mailing list
[email protected]
http://church.cs.bilgi.edu.tr/lcg
http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp