Saturday, July 15, 2006

Lisp 1.5 Programmer 's Manual

นั่งดู manual ที่เขียนขึ้นเมื่อปี 1962
เจอตัวอย่างนี้เข้าไป
DEFINE (( 
(MEMBER (LAMBDA (A X) (COND ((NULL X) F)
( (EQ A (CAR X) ) T) (T (MEMBER A (CDR X))) )))
(UNION (LAMBDA (X Y) (COND ((NULL X) Y) ((MEMBER
(CAR X) Y) (UNION (CDR X) Y)) (T (CONS (CAR X)
(UNION (CDR X) Y))) )))
(INTERSECTION (LAMBDA (X Y) (COND ((NULL X) NIL)
( (MEMBER (CAR X) Y) (CONS (CAR X) (INTERSECTION
(CDR X) Y))) (T (INTERSECTION (CDR X) Y)) )))
))

มึนเลย

ถ้าเขียนแบบ syntax ในปัจจุบัน
อย่าง function member ก็จะเขียนแบบนี้
(defun member (a x)
(cond ((null x) NIL)
((equal a (car x)) t)
(t (member a (cdr x)))))


สำหรับผม มันอ่านง่ายขึ้นเยอะเลยนะ

Related link from Roti

No comments: