论坛首页 综合技术论坛

从church numerals 理解数据抽象

浏览 1282 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-03-17  

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

跳转论坛:
Global site tag (gtag.js) - Google Analytics