Please could someone explain to me the difference between a primitive recursive function and a recursive function. I don't really need a formal definition, I would like to understand the difference between them so I can learn more about Ackermann's functions.

All I know so far is that all PR functions are recursive, I don't really understand do-loops or while-loops which are used in some definitions of recursion that I've found.

Is a recursive function or a primitive recursive function a function which can be implemented with a Turing machine? Also what is a partially recursive function?

Many thanks

Steph