There's a classic set of 99 Common Lisp coding problems (themselves based on a set of Prolog problems) floating around. Naturally, people have written solutions to the problems in other languages too, like ocaml. If you're looking for ideas for practice exercises, it's not a bad source.
My Racket solutions for some questions about evaluating boolean expressions. (Needs my slib-format
package if you want to run the code).