sicp习题试解 (1.33)

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

; ======================================================================

;

; Structure and Interpretation of Computer Programs

; (trial answer to excercises)

;

; 计算机程序的构造和解释(习题试解)

;

; created: code17 03/05/05

; modified:

; (保持内容完整不变前提下,可以任意转载)

; ======================================================================

;; SICP No.1.33

;; 递归版本

(define (filtered-accumulate-r filter combiner null-value term a next b)

(if (> a b)

null-value

(combiner (if (filter a) (term a) null-value)

(filtered-accumulate-r filter combiner null-value

term (next a) next b))))

;; 迭代版本

(define (filtered-accumulate-i filter combiner null-value term a next b)

(if (> a b)

null-value

(filtered-accumulate-i filter combiner

(if (filter a)

(combiner null-value (term a))

null-value)

term (next a) next b)))

;; 素数的平方和

(define (sum-of-primes-square a b)

(define (next i) (+ i 1))

(filtered-accumulate-r prime? + 0 square a next b))

;; 互质数的积

(define (product-of-relative-primes n)

(define (relative-prime? i) (= (gcd i n) 1))

(define (id i) i)

(define (next i) (+ i 1))

(filtered-accumulate-i relative-prime? * 1 id 2 next (- n 1)))

;; Test-it

;; Welcome to MzScheme version 209, Copyright (c) 2004 PLT Scheme, Inc.

;; > (sum-of-primes-square 3 10)

;; 83

;; > (product-of-relative-primes 10)

;; 189

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航