Computing Functions with Turing Machines