aboutsummaryrefslogtreecommitdiff
path: root/chap3/part2.rkt
diff options
context:
space:
mode:
authorJacques Comeaux <jacquesrcomeaux@protonmail.com>2023-09-22 17:32:53 -0500
committerJacques Comeaux <jacquesrcomeaux@protonmail.com>2023-09-22 17:32:53 -0500
commit135126a05774cc438b496c151c6357e3d04e0c33 (patch)
tree4bcb90c4625cc300fb84218abf5d9115ba6d2193 /chap3/part2.rkt
parent767598cf3415eb17ce5fb293825e4cc6ec980562 (diff)
Add table exercises
Diffstat (limited to 'chap3/part2.rkt')
-rw-r--r--chap3/part2.rkt172
1 files changed, 93 insertions, 79 deletions
diff --git a/chap3/part2.rkt b/chap3/part2.rkt
index 6b366ef..05d80bb 100644
--- a/chap3/part2.rkt
+++ b/chap3/part2.rkt
@@ -33,10 +33,11 @@
#| A |#
#| -> |#
-#| (lambda (n) |#
-#| (if (= n 1) |#
-#| 1 |#
-#| (* n (factorial (- n 1))))) |#
+#| parameters: n |#
+#| body: |#
+#| (if (= n 1) |#
+#| 1 |#
+#| (* n (factorial (- n 1)))) |#
#| -> global |#
#| E1 E2 |#
@@ -83,18 +84,21 @@
#| A |#
#| -> |#
-#| (lambda (product counter max-count) |#
-#| (if (> counter max-count) |#
-#| product |#
-#| (fact-iter |#
-#| (* counter product) |#
-#| (+ counter 1) |#
-#| max-count))) |#
+#| parameters: product counter max-count |#
+#| body: |#
+#| (if (> counter max-count) |#
+#| product |#
+#| (fact-iter |#
+#| (* counter product) |#
+#| (+ counter 1) |#
+#| max-count)) |#
#| -> global |#
#| B |#
#| -> |#
-#| (lambda (n) (fact-iter 1 1 n)) |#
+#| parameters: n |#
+#| body: |#
+#| (fact-iter 1 1 n) |#
#| -> global |#
#| E1 |#
@@ -182,8 +186,9 @@
#| A |#
#| -> |#
-#| (lambda (initial-amount) |#
-#| (let ((balance initial-amount))) |#
+#| parameters: initial-amount |#
+#| body: |#
+#| (let ((balance initial-amount)) |#
#| (lambda (amount) |#
#| (if (>= balance amount) |#
#| (begin |#
@@ -221,12 +226,13 @@
#| B |#
#| -> |#
-#| (lambda (amount) |#
-#| (if (>= balance amount) |#
-#| (begin |#
-#| (set! balance (- balance amount)) |#
-#| balance) |#
-#| "Insufficient funds")) |#
+#| parameters: amount |#
+#| body: |#
+#| (if (>= balance amount) |#
+#| (begin |#
+#| (set! balance (- balance amount)) |#
+#| balance) |#
+#| "Insufficient funds") |#
#| -> E2 |#
#| E3 |#
@@ -274,12 +280,13 @@
#| C |#
#| -> |#
-#| (lambda (amount) |#
-#| (if (>= balance amount) |#
-#| (begin |#
-#| (set! balance (- balance amount)) |#
-#| balance) |#
-#| "Insufficient funds")) |#
+#| parameters: amount |#
+#| body: |#
+#| (if (>= balance amount) |#
+#| (begin |#
+#| (set! balance (- balance amount)) |#
+#| balance) |#
+#| "Insufficient funds") |#
#| -> E5 |#
#| 3.11 |#
@@ -319,25 +326,26 @@
#| A |#
#| -> |#
-#| (lambda (balance) |#
-#| (define (withdraw amount) |#
-#| (if (>= balance amount) |#
-#| (begin |#
-#| (set! balance (- balance amount)) |#
-#| balance) |#
-#| "Insufficient funds")) |#
-#| (define (deposit amount) |#
-#| (set! balance (+ balance amount)) |#
-#| balance) |#
-#| (define (dispatch m) |#
-#| (cond |#
-#| ((eq? m 'withdraw) withdraw) |#
-#| ((eq? m 'deposit) deposit) |#
-#| (else |#
-#| (error |#
-#| "Unknown request -- MAKE-ACCOUNT" |#
-#| m)))) |#
-#| dispatch) |#
+#| parameters: balance |#
+#| body: |#
+#| (define (withdraw amount) |#
+#| (if (>= balance amount) |#
+#| (begin |#
+#| (set! balance (- balance amount)) |#
+#| balance) |#
+#| "Insufficient funds")) |#
+#| (define (deposit amount) |#
+#| (set! balance (+ balance amount)) |#
+#| balance) |#
+#| (define (dispatch m) |#
+#| (cond |#
+#| ((eq? m 'withdraw) withdraw) |#
+#| ((eq? m 'deposit) deposit) |#
+#| (else |#
+#| (error |#
+#| "Unknown request -- MAKE-ACCOUNT" |#
+#| m)))) |#
+#| dispatch |#
#| -> global |#
#| E1 |#
@@ -351,31 +359,34 @@
#| B |#
#| -> |#
-#| (lambda (amount) |#
-#| (if (>= balance amount) |#
-#| (begin |#
-#| (set! balance (- balance amount)) |#
-#| balance) |#
-#| "Insufficient funds")) |#
+#| parameters: amount |#
+#| body: |#
+#| (if (>= balance amount) |#
+#| (begin |#
+#| (set! balance (- balance amount)) |#
+#| balance) |#
+#| "Insufficient funds") |#
#| -> E1 |#
#| C |#
#| -> |#
-#| (lambda (amount) |#
-#| (set! balance (+ balance amount)) |#
-#| balance) |#
+#| parameters: amount |#
+#| body: |#
+#| (set! balance (+ balance amount)) |#
+#| balance |#
#| -> E1 |#
#| D |#
#| -> |#
-#| (lambda (m) |#
-#| (cond |#
-#| ((eq? m 'withdraw) withdraw) |#
-#| ((eq? m 'deposit) deposit) |#
-#| (else |#
-#| (error |#
-#| "Unknown request -- MAKE-ACCOUNT" |#
-#| m)))) |#
+#| parameters: m |#
+#| body: |#
+#| (cond |#
+#| ((eq? m 'withdraw) withdraw) |#
+#| ((eq? m 'deposit) deposit) |#
+#| (else |#
+#| (error |#
+#| "Unknown request -- MAKE-ACCOUNT" |#
+#| m))) |#
#| -> E1 |#
#| E2 |#
@@ -454,29 +465,32 @@
#| E |#
#| -> |#
-#| (lambda (amount) |#
-#| (if (>= balance amount) |#
-#| (begin |#
-#| (set! balance (- balance amount)) |#
-#| balance) |#
-#| "Insufficient funds")) |#
+#| parameters: amount |#
+#| body: |#
+#| (if (>= balance amount) |#
+#| (begin |#
+#| (set! balance (- balance amount)) |#
+#| balance) |#
+#| "Insufficient funds") |#
#| -> E6 |#
#| F |#
#| -> |#
-#| (lambda (amount) |#
-#| (set! balance (+ balance amount)) |#
-#| balance) |#
+#| parameters: amount |#
+#| body: |#
+#| (set! balance (+ balance amount)) |#
+#| balance |#
#| -> E6 |#
#| G |#
#| -> |#
-#| (lambda (m) |#
-#| (cond |#
-#| ((eq? m 'withdraw) withdraw) |#
-#| ((eq? m 'deposit) deposit) |#
-#| (else |#
-#| (error |#
-#| "Unknown request -- MAKE-ACCOUNT" |#
-#| m)))) |#
+#| parameters: m |#
+#| body: |#
+#| (cond |#
+#| ((eq? m 'withdraw) withdraw) |#
+#| ((eq? m 'deposit) deposit) |#
+#| (else |#
+#| (error |#
+#| "Unknown request -- MAKE-ACCOUNT" |#
+#| m))) |#
#| -> E6 |#