Chat (Lingr.com)
Informaiton
Daily
Column
- MySQL日本語の旅(5/1)
- アクセス向上秘伝(5/9)
- 一風変ったHaskellλ門(6/13)
- SICP Answer Book (5/31) 問題3.26追加
Zope Solution
Extra
アーカイブ
OSS案内所
Site Info
関連リンク
##(link2sicp "book-Z-H-12.html#%_thm_1.41" "Exercise 1.41")
解答例
double は引数として一引数の手続きをとり、 受け取った手続きを二回作用させる手続きを返す。
(define (double f) (lambda (x) (f (f x))))
(double double) は doble を二回作用させる手続きを返す。 すなわち、受け取った手続き (2^2 = 4)回作用させる手続きを返す。
(double (double double)) は引数として一引数の手続きをとり、 (4^2 = 16)回作用させる手続きを返す。
したがって、(((double (double double)) inc) 5) は 21 となる。
gosh> (((double (double double)) inc) 5) 21
コード
##(sicp-answer-code "ex-1.41.scm")