Exercises from the "Little Schemer" series of books by Daniel P. Friedman and Matthias Felleisen.
The Little Schemer - 4th Edition
https://www.amazon.com/dp/0262560992/
I started in Ruby, because I know it best, but as it came into higher order functions in Chapter 8 - “Lambda the Ultimate” - I decided to switch to a language with first-class functions. Lua, at first, but then chose JavaScript, using NodeJS, since it's more important to keep my JavaScript chops up.
Now I'm glad I did it this way, because I'm making myself solve the problems all over again, a few days after doing it the first time, but from memory, which is surprisingly half-gone already! Maybe I'll do it again in different languages, some day.