Program schemes and recursive function theory