From: Ramakrishnan Muthukrishnan Date: Sun, 11 Dec 2011 19:40:39 +0000 (+0530) Subject: solutions to 4.18 and 4.19 X-Git-Url: https://git.rkrishnan.org/pf/content/en/seg/bcase/provisioning?a=commitdiff_plain;h=703a94b6a9a05bcd3263dbe717b7357c1b8e982c;p=sicp.git solutions to 4.18 and 4.19 --- diff --git a/src/sicp/ex4_18.rkt b/src/sicp/ex4_18.rkt new file mode 100644 index 0000000..a730e34 --- /dev/null +++ b/src/sicp/ex4_18.rkt @@ -0,0 +1,10 @@ +#lang racket + +#| + +It won't work in the new definition because the new let translates to a lambda and application +of the lambda to the expressions. When we do that, evaluation of one expression needs the other. + +It will work with the definition given in the text because the expressions are inside the lambda. + +|# \ No newline at end of file diff --git a/src/sicp/ex4_19.rkt b/src/sicp/ex4_19.rkt new file mode 100644 index 0000000..b04a549 --- /dev/null +++ b/src/sicp/ex4_19.rkt @@ -0,0 +1,9 @@ +#lang racket + +#| + +I think Eva's scheme is the correct one but very hard to implement. One way to do it for non-function +definitions is to sort definitions in the order of least dependence on each other. If these definitions +(again, non-function) are mutually dependent, an error should be flagged. + +|# \ No newline at end of file