On 2015-06-04 10:03, Pierre Massat wrote:
The mistake I made was to believe that print would send the current value to the console at each step of the loop (like print in a for loop in Python for instance),
i meant to reply to this, but forgot. i still cannot resist, so:
python actually behaves the same here, as shows the following implementation:
<weirdo.py> def find_slash(counter): char = ord(string[counter - 1]) if char != 47: find_slash(counter - 1) print("output: %s" % (char)) print("counter: %s" % (counter)) counter = counter - 1
string = '/blabla/snare.wav' find_slash(len(string)) </weirdo.py>
but most likely you wouldn't write your python code like that (apart from the fact that in python you would just use "string.rfind('/')")
myself, i would write the code as something like
<noweirdo.py> def find_slash(counter): counter = counter - 1 print("counter: %s" % (counter)) char = ord(string[counter]) print("output: %s" % (char)) if char != 47: find_slash(counter) </noweirdo.py>
which is the same but has the order reversed esp. the recursive call has moved to the very end of the function, *after* all the print() (a common technique to exploit tail recursion optimisation; probably that's the reason why i did it, dunno)
gmfsdr IOhannes