http://theweeklypush.com/how-to-pass-recursive-lambdas-c