Sampling for Bayesian Program Learning