# eqan?

(define eqan?
;; only evaluate atoms of number and character
(lambda (n1 n2)
(cond
((and (number? n1) (number? n2))
(= n1 n2))
((or (number? n1) (number? n2))
#f)
(else
(eq? n1 n2)))))



# eqlist?

(define eqlist?
;; only anlysis list argument
(lambda (l1 l2)
(letrec ((atom? (lambda (a1)
(and (not (pair? a1)) (not (null? a1))))))
(cond
((and (null? l1) (null? l2)) #t)
((or (null? l1) (null? l2)) #f)
((and (atom? (car l1)) (atom? (car l2)))
(and (eqan? (car l1) (car l2)) (eqlist? (cdr l1) (cdr l2))))
((or (atom? (car l1)) (atom? (car l2))) #f)
(else
(and (eqlist? (car l1) (car l2))
(eqlist? (cdr l1) (cdr l2))))))))



# equal?

(define equal?
;; accept s-expressions as arguments( atoms 、lat  and  lists)
(lambda (s1 s2)
(letrec ((atom? (lambda (x)
(and (not (null? x)) (not (pair? x))))))
(cond
((and (atom? s1) (atom? s2))
(eqan? s1 s2))
((or (atom? s1) (atom? s2))
#f)
(else
(eqlist? s1 s2))))))



# 过去的yzl和现在的yzl是否相同

(define yzl
(lambda (things)
(letrec ((atom? (lambda (thing)
(and (not (pair? thing)) (not (null? thing))))))
(cond ((null? things) (quote 'nervous))
((atom? (car things))
(cons (quote 'done) (yzl (cdr things))))
(else
(cons (yzl (car things)) (yzl (cdr things))))))))
;;; (yzl '(get learn study buy travel do wash eat create))
;;; '('done 'done 'done 'done 'done 'done 'done 'done quote nervous)

• Are we finish?
• Do you have any other questions?
• what’s the meaning of that?
• I regret that I cannot recall who remarked the computation is the art of carefully throwing away information, while Computer science deals with information and with complexity: give an overwhelming collection of data, you reduce it to useable result by discarding most of its content(进行边缘计算，只取回特征值)

• Abstract mean you give sth a name; Abstraction is the most important concept in all of the computer science Abstraction consists in treating sth complex as if they were simpler, throwing away details.
• Reference means you call sth by name
• While Synthesis means you combine two of the things(Abstract and Reference) From 《scheme and art of programming》(抽象的反义词 合成 抽象为简单、合成为复杂)

Solve problems not only for their solutions but also or an understanding of how the solutions were obtained(也许背后的求解思路更重要)

The task that confronts you is not only to learn a programming language but to learn to think as a computer scientist and develop an aesthetic about computer programs( make them become elegant

Related
##### 叶昭良
###### Engineer of offshore wind turbine technique research

My research interests include distributed energy, wind turbine power generation technique , Computational fluid dynamic and programmable matter.