欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

从church numerals 理解数据抽象

程序员文章站 2024-01-10 18:28:58
...
        现在到了数学抽象中最关键的一步:让我们忘记这些符号所表示的对象。(数学家)不应在这里停步,有许多操作可以应用于这些符号,而根本不必考虑它们到底代表着什么东西。   --- sicp (第二章 数据抽象)      邱奇数可以帮我们充分理解上面这句话和数据抽象的含义。(我的读书笔记见:http://book.douban.com/people/xulao/annotation/
(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
相关标签: lambda sicp