From 703a94b6a9a05bcd3263dbe717b7357c1b8e982c Mon Sep 17 00:00:00 2001
From: Ramakrishnan Muthukrishnan <vu3rdd@gmail.com>
Date: Mon, 12 Dec 2011 01:10:39 +0530
Subject: [PATCH] solutions to 4.18 and 4.19

---
 src/sicp/ex4_18.rkt | 10 ++++++++++
 src/sicp/ex4_19.rkt |  9 +++++++++
 2 files changed, 19 insertions(+)
 create mode 100644 src/sicp/ex4_18.rkt
 create mode 100644 src/sicp/ex4_19.rkt

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
-- 
2.45.2