Ben sizin birinci orneginizi (ilk mesajinizdaki degil,
bu cevap yazdigim) calistiramadim. Ama zaten
calisanlar da istediginizi yapmiyor: siz kombinasyon
mu almaya calisiyorsunuz, permutasyon mu? Bunlar
permutasyon aliyor...

--- [EMAIL PROTECTED] wrote:

> ---- 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.
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

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

Cevap