Skip to content

Commit 1dc2991

Browse files
committed
Convert all scheme code to racket code
Then we could leverage the toolkit provided by Racket language to test the code.
1 parent e5a139b commit 1dc2991

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+320
-207
lines changed

chapter2/coercion.rkt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#lang racket
22
(require "generic_operation.scm")
3+
(require "ch2lib.scm")
34

45
(define *coercion-table* (make-hash))
56

chapter2/exercise2-1.scm

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
1+
#lang racket
12
;;; 欧几里得算法求最大公约数
23
(define (gcd a b)
34
(if (= b 0)
45
a
5-
(gcb b (remainder a b))))
6+
(gcd b (remainder a b))))
67

78
(define (standardized-make-rat n d)
8-
(let ((g (if (negative? d)- +) (gcd n d)))
9+
(let* ((common-divisor (gcd n d))
10+
(sign-factor (if (negative? d)- +))
11+
(g (sign-factor common-divisor)))
912
(cons (/ n g) (/ d g))))
1013

1114
(define (number x)

chapter2/exercise2-17.scm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#lang racket
12
(define (list-ref items n)
23
(if (= n 0)
34
(car items)

chapter2/exercise2-18.scm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#lang racket
12
(define (list-ref items n)
23
(if (= n 0)
34
(car items)

chapter2/exercise2-20.scm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#lang racket
12
(define (append list1 list2)
23
(if (null? list1)
34
list2

chapter2/exercise2-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 (square-list items)
23
(if (null? items)
34
(list)

chapter2/exercise2-23.scm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#lang racket
12
(define (for-each proc items)
23
(let ((a (map proc items)))
34
(= 1 1)))

chapter2/exercise2-26.scm

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

chapter2/exercise2-27.scm

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

34
(define (append list1 list2)

chapter2/exercise2-28.scm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#lang racket
12
(define (fringe items)
23
(if (not (pair? items))
34
items
@@ -6,5 +7,6 @@
67
(append (list (car items)) (fringe (cdr items))))))
78

89
;;;
10+
(define x (list (list 1 2) (list 3 4)))
911
(fringe x) ; => (1 2 3 4)
1012
(fringe (list x x)) ; => (1 2 3 4 1 2 3 4)

0 commit comments

Comments
 (0)