Nusret, lambda(g) olmasi gerekmez mi?

CL-USER> (setq S (lambda (f) (let ((lambda(g) (lambda (h) (lambda (x) ((f (h h)) x)))))
               (g g))                               ^^^^^^^    
               ))

#<CLOSURE :LAMBDA (F)
  (LET ((LAMBDA (G) (LAMBDA (H) (LAMBDA (X) ((F (H H)) X))))) (G G))>



On 7/11/06, nusret < [EMAIL PROTECTED]> wrote:
Aramizda CS okuyan arkadaslar gormus olabilirler, ama
bir hafiza yenilemesi olur onlar icin. Gormemis
olanlari da biraz dusundurur.

Soru su: asagidaki kod ne is yapar ve, asil onemlisi,
neden ilginc (umarim ilginctir sizin icin de :)? Onemi
daha cok teorik, ama cok hos geldi bana (hatta
Amazon.com'dan bu 4 satir kodun verdigi ilham mi
dersiniz, gaz mi artik, bilmem, bir de kitap
ismarladim ;)).

Scheme kodu:

(define S (lambda (f)
             (let ((g (lambda (h)
                         (lambda (x) ((f (h h)) x)))))
                (g g))))

(CL kodu icin define yerine setq yazin (ama dikkat: o
zaman funcall kullanmaniz gerekir cagirirken), veya
(defun S (f)
....(gerisi ayni))

Kolay gelsin,

Nusret




__________________________________________________
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



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

Cevap