现在到了数学抽象中最关键的一步:让我们忘记这些符号所表示的对象。(数学家)不应在这里停步,有许多操作可以应用于这些符号,而根本不必考虑它们到底代表着什么东西。 --- sicp (第二章 数据抽象) 邱奇数可以帮我们充分理解上面这句话和数据抽象的含义。
-
(define (inc n)
- (+ n 1))
-
(define zero
- (lambda (f zero)
- zero))
-
(define one
- (lambda (f zero)
- (f zero)))
-
(define two
- (lambda (f zero)
- (f (f zero))))
-
(define (add x y)
- (lambda (f zero)
- (x f (y f zero))))
-
(define three (add two one))
-
;; 3+3
-
(define (multiply x y)
- (lambda (f zero)
- (x (lambda (z)
- (y f z))
- zero)))
-
(define four (multiply two three))
-
(four inc 0)
邱奇数可以很好的将数学计算,用符号演算构造出来,并得到所有(可计算的)“自然数”(符号)。(将操作应用于符号,而不必考虑他们到底代表什么东西) 其实邱奇的lambda calculus建立一个强大的符号演算系统,利用这个(抽象)符号操作概念可以建立一个强大的形式语言,从而实现一个图灵等价的计算模型。符号演算可以模拟出数学世界里的所有计算模型,而数学计算只是这个形式语言的其中一个具体罢了。 关于邱奇-图灵理论,停机问题,Y 组合子,不完备性定理,可以参考一下2篇好文: http://blog.csdn.net/pongba/article/details/1336028
http://blog.csdn.net/pongba/article/details/621723