Studying Programming Language Theory
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.