The function I wrote (below) reverses lists all right:

def reverse(xs):
    if xs == []:
        return []
    else:
        return (reverse (xs[1:])) + [xs[0]]


>>> reverse ([1,2,3])
[3, 2, 1]
>>>


Yet when I try to reverse a string I  get:

>>> reverse ("abc")

...
...
...

  File "C:\wks\python-wks\reverse.py", line 5, in reverse

    return (reverse (xs[1:])) + [xs[0]]

  File "C:\wks\python-wks\reverse.py", line 5, in reverse

    return (reverse (xs[1:])) + [xs[0]]

  File "C:\wks\python-wks\reverse.py", line 2, in reverse

    if xs == []:

RuntimeError: maximum recursion depth exceeded in cmp

>>>

What's wrong? Why recursion never stops?

Thanks,
Dima
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to