谓词 eql
测试它的两个实参是否相等;此外,这个定义的所有东西我们之前都学过了。下面是运行的情形:
(B C)
NIL
当你想要了解递归函数是怎么工作时,把它翻成这样的叙述有助于你理解。
较好的比喻是,把函数想成一个处理的过程。在过程里,递归是在自然不过的事情了。日常生活中我们经常看到递归的过程。举例来说,假设一个历史学家,对欧洲历史上的人口变化感兴趣。研究文献的过程很可能是:
- 取得一个文献的复本
- 如果这份文献提到其它可能有用的文献,研究它们。
所以,别把 our-member
想成是一种测试某个东西是否为列表成员的机器。而是把它想成是,决定某个东西是否为列表成员的规则。如果我们从这个角度来考虑函数,那么递归的矛盾就不复存在了。