使用 Lisp 簡單描述加法運算
作者:周琪力
即使你像我一樣根本沒學(xué)過 lisp 也能看懂下面這段代碼,這段代碼展示了怎么實現(xiàn)加法運算,這種我們幾乎從來不會去想為什么的問題,這幾行簡單的代碼告訴我們?nèi)绾斡嬎愠?3 + 4 的值。
最近在看 MIT 公開課-計算機程序的構(gòu)造和解釋,即使你像我一樣根本沒學(xué)過 lisp 也能看懂下面這段代碼,這段代碼展示了怎么實現(xiàn)加法運算,這種我們幾乎從來不會去想為什么的問題,這幾行簡單的代碼告訴我們?nèi)绾斡嬎愠?3 + 4 的值
由 皮亞諾 算術(shù)定義的求 x 和 y 之和的過程
- ; Define a [+] processor
- (define (+ x y)
- (if (= x 0)
- y
- (+ (-1+x) (1+y))))
- ; x = 3, y = 4
- (+ 3 4)
- (if (= 3 0) 4 (+ (-1+3) (1+4)))
- (+ (-1+3) (1+4))
- (+ 2 5)
- (if (= 2 0) 5 (+ (-1+2) (1+5)))
- (+ (-1+2) (1+5))
- (+ 1 6)
- (if (= 1 0) 6 (+ (-1+1) (1+6)))
- (+ (-1+1) (1+6))
- (+ 0 7)
- (if (= 0 0) 7 (-1+0) (1+7))
- 7
責(zé)任編輯:武曉燕
來源:
51CTO專欄