]> git.rkrishnan.org Git - sicp.git/blobdiff - src/sicp/ex4_52.rkt
solutions to 4.50..4.54
[sicp.git] / src / sicp / ex4_52.rkt
diff --git a/src/sicp/ex4_52.rkt b/src/sicp/ex4_52.rkt
new file mode 100644 (file)
index 0000000..3c60f2c
--- /dev/null
@@ -0,0 +1,12 @@
+#lang racket
+
+;; if-fail
+
+(define (analyze-if-fail expr)
+  (let ([sproc (analyze (if-fail-success expr))]
+        [fproc (analyze (if-fail-failure expr))])
+    (lambda (env succeed fail)
+      (sproc env
+             succeed
+             (lambda ()
+               (fexpr env succeed fail))))))
\ No newline at end of file