what is the difference between normal function and generator function