Both SICP and HTDP are very good books. SICP has little more 'attitude' in it, but I think its neutral feature. If you want to learn programming as something between algorithms and programming languages, I suggest these four 'Lisp' books:
1. SICP (Structure and Interpretation of Computer Programs)
SICP and HTDP are different but serve the same purpose. LiSP is about interpretation, semantics, and compilation. PAIP by Peter Norvig can seen as elementary programming book that uses classical AI as a subject. You learn both.
I don't know what to think about this, I haven't read it: SICM (Structure and Interpretation of Classical Mechanics)
Which among these teach me functional paradigm through LISP the best? Or would you recommend some other book that uses a small language to gain a good grip over FP? Haskell, Scala and Clojure are intimidatingly big.
1. Functions as first class objects in the language and enabling the functional style programming.
2. Pure functional programming. Not a style, its functional programming.
IMHO learning the first kind helps relatively little when you want to learn second kind and vice versa.
Lisp is multi-paradigm language or "Lisp paradigm" language family. Because functions are first class objects it facilitate functional programming of the first kind. Some Lisps are geared towards using functional style more than others.
I have only read Thompson's Haskell: The Craft of Functional Programming and some old ML books I can't name. I have no idea if it's a good compared to other FP books.
For Clojure - a good start might be something like solving a few of the advent of code puzzles with the simple but powerful map/reduce functions. You won’t need the whole language and you will be writing functional programs.
The experience of that alone might help you find the next book that works for you.
1. SICP (Structure and Interpretation of Computer Programs)
2. HTDP (How to Design Programs) https://htdp.org
3. LiSP (Lisp in Small Pieces),
4. PAIP (Paradigms of Artificial Intelligence Programming) https://github.com/norvig/paip-lisp
SICP and HTDP are different but serve the same purpose. LiSP is about interpretation, semantics, and compilation. PAIP by Peter Norvig can seen as elementary programming book that uses classical AI as a subject. You learn both.
I don't know what to think about this, I haven't read it: SICM (Structure and Interpretation of Classical Mechanics)