Studying Programming Language Theory I have recently become extremely interested in understanding and proving aspects of (functional) programming languages.

However as I dive deeper in, things like $\lambda$ calculus, category theory, and denotational semantics are a little difficult to grok without proper explanation.

I read SICP (quite an enlightening book) but I'm looking to dive deeper into the theory of functional programming. Are there any books/blogs/sites/you-name-it that would discuss the theory of functional programming languages from the ground up?
It is not easy to come by books that consider the denotational semantics of $\lambda$-calculus. One possibility is:


Roberto M. Amadio and Pierre-Louis Curien: Domains and Lambda-Calculi


Type-theoretic accounts are easier to get hold of:


Bob Harper, Practical Foundations of Programming Languages (there is also a printed version).
Benjamin Pierce, Types and Programming Languages.
Frank Pfenning's course on Computation and Deduction, I think he also published a book with the same title.