I would add Concepts, Techniques, and Models of Computer Programming. It's about programming paradigms in general, and helps in contextualizing functional programming in a broader context
In fact what this book does is advocate multiparadigm languages (actually the author dislikes the term paradigm, multiple programming models would be more acurate), and explains in great detail how to decide which to use when, and how to mix different paradigms (ehem, models) with the very powerful technique of impedance matching.