From ce9e1069c11223190ac264c586ebe8aff21c3735 Mon Sep 17 00:00:00 2001 From: bnewbold Date: Fri, 16 Jan 2009 05:14:20 -0500 Subject: added seasoned so far, minor changes --- books/Little Schemer | 3 +++ books/Seasoned Schemer | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 books/Seasoned Schemer (limited to 'books') diff --git a/books/Little Schemer b/books/Little Schemer index ccca2a7..394de5b 100644 --- a/books/Little Schemer +++ b/books/Little Schemer @@ -17,6 +17,9 @@ The first 7 chapters were very straight forward, the end of chapter 8 took some more thought and I'm not sure how happy I am with the description of collectors and continuations. +For a better description of the Y-combinator, see these `course notes +`__. + This book is followed by `The Seasoned Schemer `__ and The Reasoned Schemer. 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 `__. + +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 -- cgit v1.2.3