Functional Programming and Metaprogramming exercises from the German book of the same name