Skip to content

Commit 7ebfbe2

Browse files
committed
Migrate Chapter1 from Scheme to Racket
1 parent 3206afc commit 7ebfbe2

32 files changed

+48
-8
lines changed

chapter1/count-change.scm

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
#lang racket
12
(define (count-change amount)
23
(cc amount 5))
34
(define (cc amount kinds-of-coins)
45
(cond ((= amount 0) 1)
5-
((or (< mount 0) (= kinds-of-coins 0)0))
6+
((or (< amount 0) (= kinds-of-coins 0)0))
67
(else (+ (cc amount
78
(- kinds-of-coins 1))
89
(cc (- amount

chapter1/exercise1-10.scm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#lang racket
12
(define (A x y)
23
(cond ((= y 0) 0)
34
((= x 0) (* 2 y))

chapter1/exercise1-21.scm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#lang racket
12
(define (smallest-divisor n)
23
(find-divisor n 2))
34
(define (square n)

chapter1/exercise1-22.scm

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
#lang racket
2+
(require "time.rkt")
3+
14
(define (prime? n)
25
(define (smallest-divisor n)
36
(find-divisor n 2))
@@ -15,7 +18,7 @@
1518
(start-prime-test n (runtime)))
1619

1720
(define (start-prime-test n start-time)
18-
(if (prime? n)
21+
(when (prime? n)
1922
(report-prime n (- (runtime) start-time))))
2023

2124
(define (report-prime n elapsed-time)
@@ -26,8 +29,8 @@
2629
)
2730

2831
(define (search-iter current last)
29-
(if (<= current last) (timed-prime-test current))
30-
(if (<= current last) (search-iter (+ current 2)last)))
32+
(when (<= current last) (timed-prime-test current))
33+
(when (<= current last) (search-iter (+ current 2)last)))
3134

3235
(define (search-for-primes first last)
3336
(search-iter (if (even? first) (+ first 1)first)

chapter1/exercise1-23.scm

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#lang racket
2+
(require "time.rkt")
13

24
(define (prime? n)
35
(define (next next-divisor)
@@ -19,7 +21,7 @@
1921
(start-prime-test n (runtime)))
2022

2123
(define (start-prime-test n start-time)
22-
(if (prime? n)
24+
(when (prime? n)
2325
(report-prime n (- (runtime) start-time))))
2426

2527
(define (report-prime n elapsed-time)

chapter1/exercise1-24.scm

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
#lang racket
2+
(require "time.rkt")
3+
14
(define (square n)
25
(* n n))
36
(define (expmod base exp m)
@@ -21,7 +24,7 @@
2124
(start-prime-test n (runtime)))
2225

2326
(define (start-prime-test n start-time)
24-
(if (fast-prime? n 10)
27+
(when (fast-prime? n 10)
2528
(report-prime n (- (runtime) start-time))))
2629

2730
(define (report-prime n elapsed-time)
@@ -32,8 +35,8 @@
3235
)
3336

3437
(define (search-iter current last)
35-
(if (<= current last) (timed-prime-test current))
36-
(if (<= current last) (search-iter (+ current 2)last)))
38+
(when (<= current last) (timed-prime-test current))
39+
(when (<= current last) (search-iter (+ current 2)last)))
3740

3841
(define (search-for-primes first last)
3942
(search-iter (if (even? first) (+ first 1)first)
File renamed without changes.
File renamed without changes.

chapter1/exercise1-27.scm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#lang racket
2+
13
(define (square x)
24
(* x x))
35
(define (expmod base exp m)

chapter1/exercise1-28.scm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#lang racket
12
(define (square x) (* x x))
23

34
(define (miller-rabin-expmod base exp m)

0 commit comments

Comments
 (0)