从church numerals 理解数据抽象
现在到了数学抽象中最关键的一步:让我们忘记这些符号所表示的对象。(数学家)不应在这里停步,有许多操作可以应用于这些符号,而根本不必考虑它们到底代表着什么东西。 --- 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)