The Seasoned Schemer and it’s predecessor The Little Schemer, by Daniel Friedman and Matthias Fellstein, are two of the best books for learning Scheme and functional programming out there. These books are not like any other technical books you have ever read; the format is downright weird. The book is more of a conversation between an instructor and student about a set of problems than anything else, with the instructor on the left half of the page and student on the right. This is the same format that the rest of the books in this series have, such as The Little Schemer, The Reasoned Schemer, and A Little Java, A Few Patterns.
Like The Little Schemer, The Seasoned Schemer starts out easy and quickly advances the difficulty. You are expected to remember the things from The Little Schemer, so you should probably read that book first, even if you have some Scheme experience. The book starts of with introducing new variables with let and letrec, and went on the explain closures, modify state (with set!), and call-cc. The last chapter involves writing a Scheme interpreter without using data structures, just functions. +1
While the answers to all the questions asked in the book are right there, you do want to take your time and solve them yourself. Some of the things covered in this book are quite complicated and hard to understand if you only read the solutions and not find them yourself, like the derivation of the applicative-order imperative Y combinator. The book isn’t too long, so it should only take you a week or so to finish it anyway, and working through the exercises really helps your understanding. This series is actually one of my favourites for learning scheme; I would highly recommend reading it, even if you aren’t going to be doing much Scheme programming, just to expand your horizons.