Metaprogramming in R - Thomas Mailund (Springer, 2017)