It is used not so often as, for example in Ruby, but there are some libraries that use metaprogramming: erlydtl created template modules or log4erl dynamically create log reducer.