See TrialAndErrorProgramming.