擅长:python、mysql、java
<p>当代码到达列表的末尾(基本情况)时,<code>xs</code>将等于<code>[]</code>(空列表),而不是<code>None</code>。因为<code>[][1:]</code>只是返回<code>[]</code>,所以函数将调用自身直到堆栈溢出。
用python编写此函数的正确方法是:</p>
<pre><code>def lengthof(xs):
"""Recursively calculate the length of xs.
Pre-condition: xs is a list"""
if (xs == []):
return 0
else:
return 1+ lengthof(xs[1:])
</code></pre>