I found the first half of this book on lambda calculus to be really helpful. The explanations and problems (solutions provided) made it easy to follow. As the book progresses, the author slowly transforms lambda calculus notation into something resembling ML. As I was less interested in the "introduction to functional programming" part than the "through lambda calculus" part, I didn't get as much value from the later chapters. However, even if your only goal is the same as mine was, to gain an understanding of lambda calculus, I still highly recommend this book. It's the best introduction I've found so far