sicp习题试解 (1.43)

类别:编程语言 点击:0 评论:0 推荐:

; ======================================================================
;
; Structure and Interpretation of Computer Programs
; (trial answer to excercises)
;
; 计算机程序的构造和解释(习题试解)
;
; created: code17 03/06/05
; modified:
; (保持内容完整不变前提下,可以任意转载)
; ======================================================================


;; SICP No.1.43

(define (repeated f n)
(if (= n 1) f (compose f (repeated f (- n 1)))))

;; 或者
(define (repeated f n)
(if (= n 1) f (lambda (x) ((repeated f (- n 1)) (f x)))))

;; 或
(define (repeated f n)
(define (iter i result)
(if (= i n) result (iter (+ i 1) (lambda (x) (result (f x))))))
(iter 1 f))


;; Test-it:
;; Welcome to MzScheme version 209, Copyright (c) 2004 PLT Scheme, Inc.
;; > ((repeated square 3) 5)
;; 625
;; > ((repeated square 3) 5)
;; 390625

本文地址:http://com.8s8s.com/it/it23018.htm