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 25
25
习题完成情况:
26
26
- 章节一: 43/46
27
27
- 章节二: 88/97
28
- - 章节三: 53 /82
28
+ - 章节三: 54 /82
29
29
- 章节四: TODO
30
30
- 章节五: TODO
31
31
* 运行
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 17
17
(not (divisible? x (stream-car stream ))))
18
18
(stream-cdr stream )))))
19
19
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))))
20
26
(define (add-streams s1 s2)
21
27
(map-stream + s1 s2))
22
28
29
+ (provide add-streams ones integers fibs)
30
+
23
31
(module+ test
24
32
(require rackunit)
25
33
35
43
)
36
44
37
45
(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))))
44
46
(check-equal? (stream-ref fibs 6 ) 8 )
45
47
)
46
48
)
You can’t perform that action at this time.
0 commit comments