summaryrefslogtreecommitdiffstats
path: root/books/Seasoned Schemer
diff options
context:
space:
mode:
authorbnewbold <bnewbold@eta.mit.edu>2009-01-16 05:14:20 -0500
committerbnewbold <bnewbold@eta.mit.edu>2009-01-16 05:14:20 -0500
commitce9e1069c11223190ac264c586ebe8aff21c3735 (patch)
tree015385852ba62ab6e195bb094905a0bf845d1253 /books/Seasoned Schemer
parent823441e43dd007d4e8931fb236ffbeada12eabd2 (diff)
downloadknowledge-ce9e1069c11223190ac264c586ebe8aff21c3735.tar.gz
knowledge-ce9e1069c11223190ac264c586ebe8aff21c3735.zip
added seasoned so far, minor changes
Diffstat (limited to 'books/Seasoned Schemer')
-rw-r--r--books/Seasoned Schemer53
1 files changed, 53 insertions, 0 deletions
diff --git a/books/Seasoned Schemer b/books/Seasoned Schemer
new file mode 100644
index 0000000..ed2a3fb
--- /dev/null
+++ b/books/Seasoned Schemer
@@ -0,0 +1,53 @@
+============================
+The Seasoned Schemer
+============================
+
+:by: Daniel Friedman and Matthias Felleisen
+:Edition: First (1st)
+
+See also `Scheme </k/software/scheme/>`__.
+
+This book is a sequel `The Little Schemer`_;
+The Reasoned Schemer is a paralel exploration of logical programming.
+
+.. _The Little Schemer: /k/books/littleschemer/
+
+Issues/Omissions
+--------------------------
+The Y combinator function is never defined in this book, I had to copy it out of
+`The Little Schemer`_;
+
+ (define Y
+ (lambda (thing)
+ ((lambda (le)
+ ((lambda (f) (f f))
+ (lambda (f) (le (lambda (x) ((f f) x))))))
+ thing)))
+
+MIT/GNU Scheme doesn't seem to have ``letcc`` or ``try``; I stuck with
+``call-with-current-continuation``:
+
+ (call-with-current-continuation (lambda (hook) ...)
+ ; is the same as
+ (letcc hook (...))
+
+ ; as noted in the book (p. 89)
+ (try x a b)
+ ; is the same as
+ (letcc success
+ (letcc x
+ (success a))
+ b)
+ ; is the same as
+ (call-with-current-continuation
+ (lambda (success)
+ (begin
+ (call-with-current-continuation
+ (lambda (x)
+ (success a)))
+ b)))
+
+
+The Next 10 Commandments
+--------------------------
+TODO