第十七章
递归调用的🅓问题并非仅仅只是一个编程🏩🜱技巧的问题,罗汉堂内堂的这些精英们,谁也不会觉得自己写🛲出来的程序会产生死循环这种低级错误。
但是当一个很平常的技巧,一旦上升到数据结构和软件架🏾☂构的问题时,突然间就露出了它狰狞的面孔。
而这些罗汉堂内堂的精英们,研究的也早就不是一段具体的⚱程序要怎么编写,而是更加看重指导程序编😃⚔👇写的思想。
在递归调用中隐藏着一个会🄈威胁到整个数学体系的危险,这个危险🅪就是罗素悖论。
所谓罗素悖论其实很多人都耳熟能详,就是那个:我给岛上所有人不给自己刮脸的人刮脸,我也只给这些人刮脸。那么,理发师是否📃给自己刮脸呢?如果他不给自己刮脸,他就属于“不给自己刮脸的人”,他就要给自己刮脸。而如果他给自己刮脸呢?他又属于“给自己刮☲🃘脸的人”,他就不该给自己刮脸。
也就是说,作为一个函数,理发师可以处理其他人,但是当⚱他“自己调⚍🐌⚆用自🄡⚬🔛己”的时候,就陷入了两难的困境。
这和越小丙提🞶😭出的“后面这🄈句话是假的,前面这句话是真的”一样,全都会陷入一个无法判断的🖔💓悖论之中。
可这种问题只是纯数学问题,在现实中理发师大可不管这个问题,痛快的给自己刮个脸。而越小丙提出的这个问题,既然无法判断,那我们大可置🕼🏀之脑后。因为只要有人类的智🛷♙力就能知道,这个问☉题毫无意义。
在人工🚲🗒🛃智能大发展之前,侯世达曾经的历史🍦上,人😐们就已经解决了这个问题。之所以递归调用会出现无法判断的悖论困境,最根本原因是计算机太过死板、极不灵活,而且绝对的照章办事。
对于计算机🅓来说,它使🗖用规则、遵守规则,但却无法操纵规则。人类能够比计算机智力更高,一个原因就是,我们能够灵活的处理“规则”。
侯世达脑海里只是将这些内容恍惚间过了一遍,实际上递归调用的解决办🗚法早就已经深🅤🈤植他的脑海。
大师兄:很简单,递归出现悖论的根本,是因为没有规则之上的规则。想避免这🀟♫种情况发生,只要给🛲规则设置规则就行了。
越小丙:规则的规则?
小寒:似乎有些道理,大师兄能否详细🏩🜱说💮说?
乌木:🚲🗒🛃我好像有点一语惊醒梦中人!好久没有🃞😺🆞这🜴种朝闻道的感觉了!