File tree Expand file tree Collapse file tree 3 files changed +36
-7
lines changed Expand file tree Collapse file tree 3 files changed +36
-7
lines changed Original file line number Diff line number Diff line change 2525 习题完成情况:
2626 - 章节一: 43/46
2727 - 章节二: 88/97
28- - 章节三: 53 /82
28+ - 章节三: 54 /82
2929 - 章节四: TODO
3030 - 章节五: TODO
3131* 运行
Original file line number Diff line number Diff line change 1+ #lang racket
2+ (require "stream.rkt " )
3+ (require "exercise3-50.rkt " )
4+ (require "infinite-stream.rkt " )
5+
6+ (define (mul-stream s1 s2)
7+ (map-stream * s1 s2))
8+
9+ (define factorials (cons-stream 1 (mul-stream (stream-cdr integers) factorials)))
10+
11+ (module+ test
12+ (require rackunit)
13+
14+ (test-case "Test for mul-stream "
15+ (define s1 (list-to-stream '(2 3 4 5 )))
16+ (define s2 (list-to-stream '(3 4 5 6 )))
17+ (define s3 (mul-stream s1 s2))
18+ (check-equal? (stream-ref s3 2 ) 20 )
19+ (check-equal? (stream-to-list s3 4 ) '(6 12 20 30 ))
20+ )
21+ (test-case "Test for factorials "
22+ (check-equal? (stream-to-list factorials 5 ) '(1 2 6 24 120 ))
23+ ;; n = 0, n+1=1 的阶乘是1
24+ ;; n = 1, n+1=2 的阶乘是2
25+ ;; n = 2, n+1=3 的阶乘是6
26+ )
27+ )
Original file line number Diff line number Diff line change 1717 (not (divisible? x (stream-car stream ))))
1818 (stream-cdr stream )))))
1919
20+ (define ones (cons-stream 1 ones))
21+ (define integers (cons-stream 1 (add-streams ones integers)))
22+ (define fibs (cons-stream 0
23+ (cons-stream 1
24+ (add-streams (stream-cdr fibs)
25+ fibs))))
2026(define (add-streams s1 s2)
2127 (map-stream + s1 s2))
2228
29+ (provide add-streams ones integers fibs)
30+
2331(module+ test
2432 (require rackunit)
2533
3543 )
3644
3745 (test-case "Test for infinite stream "
38- (define ones (cons-stream 1 ones))
39- (define integers (cons-stream 1 (add-streams ones integers)))
40- (define fibs (cons-stream 0
41- (cons-stream 1
42- (add-streams (stream-cdr fibs)
43- fibs))))
4446 (check-equal? (stream-ref fibs 6 ) 8 )
4547 )
4648 )
You can’t perform that action at this time.
0 commit comments