>>1392>Category Theory is useful for almost all languageswhy?
learn Category theory as you need it, in a vacuum it is completely useless. what you will likely find happening is that you stumble onto basic categorical concepts as you program (in a strongly typed functional language) and backtrack to the theory as you level up with the abstractions that you encounter.
>Functional Programming Through Lambda Calculus by Michaelsonis the only book on your list that wouldn't completely overwhelm an undergrad level student. All the others should be avoided until you have the required maths background. Another exception being
Compiling with Continuations, avoid this altogether. If I can be bothered then I'll post some compiler papers/texts for anyone interested.
The Little Typer by Friedman & Christiansen, recently released, is a very friendly introduction to many basic concepts in type theory minus the usual prerequisite mathenese.