Excellent.
This is an amazing little book that helps bridge the gap of how you arrive at ML or Lisp from the pure untyped Lambda calculus.
You start with some historical reference, and then from basic primitives*, you build booleans and conditionals, natural numbers**, lists (which are effectively sequenced pairs), strings (as lists of characters, with characters corresponding to church numerals), trees, and then graft on a type system on top of the result.
You also do meet recursion through the applicative order Y-combinator.
The last couple of chapter are effectively intros to Standard ML and Common Lisp, with a bit of an explanation of how the preceding ideas are applied within those languages. I had never worked with Standard ML and Common Lisp, but I managed to breeze through them because of previous experience with OCaml and Scheme.
One thing worth of reference is that the book has copious exercises in each chapter, and the last 30-40 pages are solutions to these exercises, which is not something that you see often enough in books IMO.
*: (e.g. the pair constructor λa.λb.λc.((c a) b), the selector for the first element λa.λb.a, the selector for the second element λa.λb.b)
**: using Peano arithmetic encoded in lambda calculus (zero/succ zero, etc)