第十七章
遞歸調(diào)用的問題并非僅僅只是一個編程技巧的🍲🌀問題,羅漢堂內(nèi)堂👡的這些精英們,誰也不會覺得自己寫出來的程序會產(chǎn)生死循環(huán)這種低級錯誤🁍🄠。
但是當(dāng)一個很平常的技巧,一旦上升到數(shù)據(jù)結(jié)構(gòu)和軟件架構(gòu)🍁的問題時,突然🈩間就露出了它猙獰的面孔。
而這🆂些羅漢堂內(nèi)堂的精英們,研究的也🂡🐕早就不是一段具體的程序要怎么編寫,而是更加看重指導(dǎo)程序編寫的思🖌👍想。
在遞歸調(diào)用中隱藏🈖♽🍷著一個會威脅到整個數(shù)學(xué)體系的危險,這個危險就是羅素悖論。
所謂羅素悖論其實很多人都耳熟能詳,就是那個:我給島上所有人不給自己刮臉的人刮臉,我也只給這些人刮臉。那么,理發(fā)師是否給自己刮臉呢?如果他不給自己刮臉,他就屬于“不給🖚自己刮臉的人”,他就要給自己刮臉。而如果他給自己刮臉呢?他又屬于“給自己刮臉的人”🌤,他🝊🉠就不該給自己刮臉。
也就是說,作為一個函數(shù),理發(fā)師可以處理其他人,但是當(dāng)他“自己調(diào)用自己”🚑💯🕔的時候,就陷入了兩🈒♚難的困境。
這和越小丙提出的“后面這句話是假的,前面這句話是真的”一樣,全🏉😐都會陷入一個無法判斷的悖論之中。
可這種問題只是純數(shù)學(xué)問題,在現(xiàn)實中理發(fā)師大可不管這個問題,痛快的給自己刮個臉。而越小丙提出的這個問題,既然無法判斷,那我們大可置之腦后。因為只💜💭要有人類的智力就能知道,這個問題毫無意義。
在人工智能大發(fā)展之前,侯世達(dá)曾經(jīng)🝇的歷史上,人們就已經(jīng)解決了這個問題。之所以遞歸調(diào)用會出現(xiàn)🈒♚無法判斷的悖論困境,最根本原因是計算機太過死板、極不靈活,而且絕對的照章辦事。
對于計算機來說,它使用規(guī)則、遵🁿守規(guī)則,但卻無法操縱規(guī)則。人類能夠比計算機智力更高🆬💧,🛣🞊💜一個原因就是,我們能夠靈活的處理“規(guī)則”。
侯世達(dá)腦海🈕♱里只是將這些內(nèi)容恍惚間過了一遍,實際上遞歸調(diào)用的解決辦☎法早就已經(jīng)深植他的腦海。
大師兄:很簡單,遞歸出現(xiàn)悖論的根本,是因為沒有規(guī)則⚮🔯🄈之上的規(guī)則。想避免這種情況發(fā)生,只要給規(guī)則設(shè)置規(guī)則就行了。
越小丙:規(guī)則的規(guī)則?
小寒:似乎有些道🈖♽🍷理☂☏,大師兄能否詳細(xì)說說?
烏🂢🐜木:我好像有點一語驚醒夢中人!好久沒有這種朝聞道的感覺了!
侯世達(dá)嘴角上翹露出一絲笑容,他上輩子打死自己也不敢想象,羅漢堂內(nèi)堂的精英🎚👥們竟然會有一天像小學(xué)生一樣向自己請教🝀。
要知道今天他們討論的東西可不是什么編程技巧,而是像越小丙之前所說的那樣,是程序編寫標(biāo)準(zhǔn)化的一部分??梢韵胂螅軌蛴懻撨@種東西的人背后,不是有著極高的地位,就🃢🙝是🎘占據(jù)了關(guān)鍵的位置。
今天他隨口一句,說不定明天就會成為行業(yè)規(guī)范。🌿這就是羅漢堂內(nèi)堂的魅力,在這里互相交流和智力激蕩的對象,沒有一個會是平凡人。
大師兄:比如說越小丙的這句,“后面這句話是假的,前面這🏾★☫句話是真的”。🏷🞯如果它的上面有一個“元規(guī)則”,也就是定義規(guī)則的規(guī)則😚,那么這個悖論就是不成立的。我們完全可以規(guī)定,遞歸調(diào)用只能調(diào)用自身低層次規(guī)則,而不能對自身規(guī)則做調(diào)用。
這句話的前半句定義了后半句,這在規(guī)則上來說,它應(yīng)該是高級規(guī)🁀🂨則。既然如此,后半句作為規(guī)則本身就不能再調(diào)用前半句。當(dāng)出現(xiàn)這種互相調(diào)用的情況,元規(guī)則就可以對遞歸調(diào)用進行判斷,如果出現(xiàn)不符合元規(guī)則的悖論,那干脆就放棄這次調(diào)用。