How to train your dragon: on the application of the Metropolis-Hastings algorithm for program synthesis