---- nusret <[EMAIL PROTECTED]> demiş ki: 
> forcer'in lisp kodu sizce karisik mi?

forcer'ın Scheme kodu karışık değil. Oldukça sade ve anlaşılır; bu yüzden örnek 
olarak onu eklemiştim bir tek. Sanırım derdimi yanlış anlattım. Ben biraz da 
sizlerin fikirlerinizi, soruna bakış açılarınızı görmek istemiştim. 
(Bilirsiniz, deneyim çok farklı bir şey.)

Bu arada, evet Common Lisp çözümleri bana karışık geldi. (Common Lisp 
bilmediğimi tekrar hatırlatırım.) Bakın önerilen CL çözümleri şu şekilde:

;
; Çözüm [1]
;
(define combinations
  (lambda (lst)
    (if (< (length lst) 2)
        (list lst))
        ; otherwise
        (let* ((curr (car lst))
               (combs curr))
          (append combs
                  (list curr)
                  (let iterate ((comb-lst combs))
                    (if (null? comb-lst)
                        '()
                        (append (list curr comb-lst)
                                (iterate (cdr comb-lst)))))))))

;
; Çözüm 2
;
(defun combinations (lst)
  (labels ((rec (front end)
             (cons (append front (list (car lst)) end)
                   (if front
                       (rec (cdr front)  (cons (car front)
                                               end))
                       nil))))
    (when lst
      (cons (list (car lst))
            (mapcan #'(lambda (c)
                        (rec c nil))
                    (combinations (cdr lst)))))))

;
; Yukarıdakinin Scheme için uyarlanmış hali.
;
(define mapcan
  (lambda (fun lst)
    (if (null? lst)
        '()
        (append (fun (car lst))
                (mapcan fun (cdr lst)))
        )))

(define combinations
  (lambda (lst)
    (letrec ((rec (lambda (front end)
                   (cons (append front (list (car lst)) end)
                         (if (null? front)
                             '()
                             (rec (cdr front)  (cons (car front)
                                                     end)))))))
      (if (null? lst)
          '()
          (cons (list (car lst))
                (mapcan (lambda (c)
                          (rec c '()))
                        (combinations (cdr lst))))))))

Bir de Parrot konusuna dikkatleri çekmek istemiştim. Ne de olsa Parrot'un (tam 
olmasa da) 2 tane Scheme, bir tane de Common Lisp derleyicisi var. Ek olarak 
VM, kodun taşınabilirliğini de oldukça arttıran bir felsefe bence. Fakat 
görünüşe bakılırsa listeden bu konuda "tınnnn" sesi geldi. :)

> Godel teoremi ile ilgili olarak: ben baska bir kitap
> buldum, teoremin birkac farkli ispatini veriyor.

Her iki tamsızlık teoreminin de farklı ispatları? Bu konuda kitabı okuduktan 
sonra listeye bunun hakkında biraz daha bilgi verir misiniz? Tamsıklık 
teoreminin farklı ispatları bana düşük bir ihtimal gibi geldi. Öyleyse bile, 
gerçekten tadından yenmez bir eser olacağı kesin.

> Ama
> bu  pop kitap tarzi birsey degil. Turkcesi var mi
> bilmiyorum: "Godel's Incompleteness Theorem",
> Smullyan. Teknik, ama anlasilmaz degil: sadece sirali
> olarak okuma gerektiriyor. Fakat buyuk bir kitap
> degil. Bir bos vakit bulabilirsem okuyacagim. Teorem
> gerekli terimler tanimlandiktan sonra dikte
> edildiginde karisik degil:

Bu noktada biraz yanılıyorsunuz gibime geliyor. Daha önceden Gödel'in tamsızlık 
teoreminin ana adımlarını gördüğünüze emin misiniz? Özellikle olayın koptuğu 
nokta, yani Gödel'in Jules  Richard'ın "Richard Paradox'u"nu kullandığı noktaya 
bakmanızı öneririm. Eminim bir kere baktıktan sonra, anlayana kadar tekrar 
tekrar bakacaksınız. Ve bir kez anladıktan sonra, "Tamam anladım artık." deyip 
arkanıza yaslandığınızda anladığınız şeyi nasıl anladığınızı unuttuğunuzu fark 
edeceksiniz. Neden mi bu kadar eminim? Gödel'in 2 tamsızlık teoremini de İ.T.Ü. 
Mat. Müh.'te seminer ile aralarında iki hocanın da bulunduğu 4-5 kişiye 
anlatmaya çalışmıştım da oradan biliyorum. Eminim odadan çıkana kadar herkes 
anlamış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