陳凱
摘要:博爾赫斯的小說中常常會出現迷宮,一方面,迷宮是敘事的對象,另一方面,敘事本身也是構造文本迷宮的過程,博爾赫斯的迷宮的敘事或者敘事的迷宮體現出一種用有限的文字來表達“無限”的企圖。這給作者帶來了雙重啟發(fā),他認為,一方面,可以用功能有限的列表實現超出列表日常功用范圍的復雜計算,另一方面,盡管教學活動常由日常生活情境引入,但思維中的創(chuàng)造力卻需要對日常工具采用一種非日常認識模式的觀照的方法,從而顯現出物的本質和變化潛力,來保證創(chuàng)造思維的自由。
關鍵詞:迷宮;博爾赫斯;觀照;計算機體系結構
中圖分類號:G434? 文獻標識碼:A? 論文編號:1674-2117(2024)01-0020-05
博爾赫斯說,“世界本來就是迷宮,沒有必要再造一座”,但博爾赫斯自己“建造”了很多迷宮,如《小徑分岔的花園》《環(huán)形廢墟》《阿萊夫》《阿斯特里昂的家》等。博爾赫斯筆下的迷宮是多樣的,“不僅有真正實體的迷宮,還有宮殿、沙漠、花園、庭院、圖書館、鏡子、城市、世界,除了這些現實事物,博爾赫斯更傾向于把一些象征事物當作迷宮,如小說、書籍、語言、時間、夢、直線、圓、敘事”。[1]有些迷宮往往不是單純空間上的迷宮,而是結合復雜的時空結構來構筑的,也就是當今的人們由科幻藝術熟知的平行世界、穿越時空等,甚至有類似于《盜夢空間》的多層嵌套,但博爾赫斯的故事帶給讀者的感覺卻不是科幻,而更像是夢境。博爾赫斯用文字來書寫迷宮,但書寫迷宮的諸多文字本身也是一個等待讀者尋找出路的迷宮,故事中的信息是多樣、分散又互相在暗中關聯的,有人認為其中具有一種“超文本系統(tǒng)”的結構。[2]“博爾赫斯是那種作家, 從一個單獨的原理開始,起初只是觀念,接著將他的故事作為抽象事物的化身或者替身進行構思”。[3]博爾赫斯故事中的觀念常常是“無限”的,而熟知計算機算法的讀者,又會發(fā)現這種用有限的文字來表達“無限”的企圖,是用和計算機科學中的循環(huán)結構、多叉樹、遞歸調用、仿真等相類似的方法達成的。博爾赫斯“建造”迷宮的過程,也是將自身所處的這個世界本身作為在迷宮尋找路徑的過程,其大致方法是,嘗試著用簡單卻無限重復的方式來表現某種復雜而不能盡述的事情,這可以勉強用兩面鏡子對照后形成層疊的幻像來比喻,但應該比這個還要復雜,這種復雜的幻像應當是可略微把握但又難以完全預測的,科學上的術語應當稱之為“混沌”。
某個初學程序語言的人在將簡單的分支結構語句、循環(huán)結構語句、列表、變量等結合起來編寫成一個具有某種功能的程序代碼時,那么他就在一個思維的迷宮中尋找到了恰當的路徑(對初學者而言大概是頗費腦力的),但對他來說,卻不容易發(fā)現這個迷宮的構筑者所面對的謎題,那就是如何由簡單的規(guī)則達成一種復雜。如果一個計算裝置的行為是可預測的,如打印一個星、兩個星、四個星、八個星等,那么它的能力是有限的;如果一個計算裝置的行為是完全不可預測的,那么它是混亂且無用的。一個功能強大的計算裝置應當如莊子所說的符合“無用之用”的特性,“無用之用意味有什么東西在另一層次上,它就像能容大物的冥海,深不可測,那里聚集了物的本質和意義……提供了另一種尺度和感受方式……打亂日常的思路安排的可靠性”。[4]在日常教學中,教師指導學生編寫程序在列表中進行枚舉,這是用;教師指導學生編寫程序在列表中進行查找,這也是用;教師指導學生在列表中排序,這當然還是用。沉浸于各種現成的“用”之中,就難免要生出如哲學家所說的人的異化的那種擔憂,而思維中的創(chuàng)造力也可能在異化中被局限了。尼采說:“你必須是一片混沌,才能產生出跳躍的星辰?!蔽覀冃枰此紴槭裁此惴ǖ某鯇W者眼中沒有跳躍的星辰,因為他們看到的都是一個又一個現成的精美的器物,而不是一個混沌的迷宮。身處迷宮中的人,更可能會停下來仰望星空,讓眼中映射跳躍的星辰。
對列表的觀照
對于教師來說,初學者的思維空間是值得珍視的,因為他們思維空間中初始的想象是不受具體功用約束的,而某個已學習了列表或數組的初學者,其想象很可能就已經受到了某種影響——往好里說是能借助思維習慣舉一反三,往壞里說就是被固化了思維方式。考慮這樣的想象任務:假想你自己是某種裝置,現在你面對著的某個使用者,試圖向你存放一系列的數據并希望將來能方便地取出其中特定的部分數據,那么你作為一個裝置,應當如何運作。這個問題的回答可能有很多種,如一種回答是:“我是由很多字節(jié)組成的,數據以二進制的形式依次存放到字節(jié)中?!彪m然沒有充分考慮獲取特定數據的便捷性,這個回答仍然是值得贊賞的,因為這個回答充分運用了已學的知識——二進制以及計算機的存儲單位。從這個回答中可以引出更具有實用性的方案,如我可以將若干個字節(jié)捆綁成一個存儲空間(常有學生用抽屜或柜子加以比喻),為這些空間編制特定的序號(當然這又引出了如何規(guī)定每個空間存儲容量的問題)。在這里,使用序號從一個線性表中獲取特定數據,當然不是數據存取唯一的方法,問題是,教師到底是應該將形形色色的數據結構拋置給學生,還是希望讓學生先試著想象出它們的存在。
在大部分教學設計中,當借助枚舉算法操作列表時,給人這樣的感覺:列表是一個現成的工具,但從本質上說,這樣就顛倒了因果,這里有一個不應該忘記的事實,其實是人們希望存在一個具有如列表般行為的數據結構(或虛擬裝置),這種希望基于一種意向中的目標。某個契合生活情境的目標,常常讓人聯想到某個已在手上或近在身邊的工具,而某個遠離生活情境的目標,則更有可能將工具從原本預設的功用中解放出來。例如,正是因為阿蘭·圖靈思考人的思維過程何以可行,才會構思出基于紙帶和讀寫頭的圖靈機;正是因為馮·諾依曼思考人造生命,才會構思出元胞自動機。要想激發(fā)學生思維的碰撞和成長,就要避免將算法和程序語言僅僅視作某種解決生活實際問題的工具,而是要提供某種更遙遠的意向目標。也許,對大部分人來說,解開生命和思維的秘密這個目標可能過于虛無縹緲,但可以試著去解開或構筑一個作為游戲的迷宮。游戲是一個暫且指向自身而不指向外在功用的事物,但它又具有延展融入社會實際功用的潛力,關于在教學中構建游戲情境,是另一個等待展開的大問題。
本文試著帶領讀者去探索一個迷宮(但也要警惕,若是單純跟隨迷宮導游的視角,這種探索就失去了重要意義),迷宮開始于對一個極為普通的列表的“觀照”,也就是通過剝離列表的日常功用而將其置于“無用”的境地,通過“技術的藝術化”或如莊子化蝶一般的“物化”(注意這里所說的并非盧卡奇所說的物化)來保證思維的自由[5],試著重新去發(fā)掘列表的大用。注意,這種“觀照”不是王陽明的“亭前格竹”,“亭前格竹”失敗的一個重要原因是在意向目標缺失的前提下觀察對象的靜態(tài)化,“格竹活動僅由直觀與玄思構成。起于靜態(tài)的感性直觀。直觀不足,繼之以主觀玄思。思之無果,最后只好歇手作罷”。[6]邵雍的話是對“亭前格竹”失敗的另一種詮釋:“天所以謂之觀物者,非以目觀之也。非觀之以目而觀之以心也,非觀之于心而觀之于理?!边@里自然要追問“理”從何來,邵雍的解釋是要從“以物觀物”中來,“以物觀物”的目的是要“非對象化之觀……不在日常認識模式的主客關系上去觀”[7],從而顯現出物的本性。一個被觀照中的列表,它將從枚舉、查找、排序等日常認識模式的功能中解脫出來,它可以成為一個數據的隧道、彈射機、跑馬燈……乃至某個游戲的場景、某個花園、某個迷宮。
列表迷宮——在簡單中實現復雜
中國的古典園林往往具有迷宮式的趣味[8],博爾赫斯的《小徑分岔的花園》里提到了一座花園,同時這座花園是一個迷宮。讓人驚訝的是,沒有到過中國的博爾赫斯能夠將迷宮和整座花園聯想在一起,而不是如西方園林那樣在園中獨辟出一個樹籬迷宮。這啟發(fā)了筆者去構筑一個列表的花園,同時也是一個列表的迷宮,這個迷宮如上頁圖1所示??紤]某人身處迷宮的入口,也就是列表0號元素的“門洞”,此人順路前行——行進過程用列表索引值i的自增來模擬,但岔路后的數字將此人帶離預定路徑跳轉到另一個指定的位置(除了岔路,其他建筑后的數字并沒有實際功能,而只是使存儲空間的容量一致),這樣,只用一維的線性數據就能表達出二維平面的分岔效果,或者說,產生出一種超文本的效果。
在如上頁圖2所示的花園中,游覽者不幸地被困于永遠的循環(huán)路徑之中,但如果所有的岔路都是一分為二的,一旦探索過其中一條分岔,下一次就選擇其中另一條,于是,走過的岔路就演化為一條普通的小路,這樣,游覽者雖然在花園中繞圈,但最終能到達出口。
假設交予游客兩把鑰匙,探尋迷宮的行為就變得更加復雜了。數字0代表能打開岔路上的直線路徑的門,數字1代表能打開岔路上的分支路徑的門,于是,不同的鑰匙,將游客引導至不同的景點:[0,0]到達水榭,[0,1]到達假山,[1,0]到達涼亭,[1,1]到達花架。游客的游覽過程,其實模擬了二進制數的解碼過程。程序代碼如上頁圖3所示。展現這個例子主要是想說明,利用簡單的規(guī)則可以涌現出復雜的行為。在這個例子中,游客、鑰匙、岔路、景點的互動仍然是不充分的,不妨想象這樣的場景,特定的景點能改變特定的鑰匙的狀態(tài),特定的鑰匙能改變特定岔路的狀態(tài),那么情況就會變得極其復雜,而正是因為這種復雜,使得一個簡單的列表也能擁有強大的計算能力。
列表迷宮計算機
圖4是一個列表的迷宮,這個迷宮自身就是一個可編程的計算機,并且只有20多行代碼。這個列表是可編程的,這并不是說,可以通過修改Python代碼來操作列表,而是說,在圖4所示的代碼中,除了第一行“L=[……]”,其他語句都不需要做任何變動,就可以用列表L本身來進行編程,從而實現不同的功能。
圖4所示的列表僅有16個元素,可以根據其實際功能,向其中增添更多的元素。這個列表迷宮的工作過程是這樣的:將列表元素看作迷宮中的房間,探索者帶著寫著0的紙和筆首先進入0號房間,并且總是按“選路”“取數”“加數”“存數”的步驟,根據房間里的數字前往指定房間進行操作,然后回到原來的房間,然后進入右面的下一個房間。具體操作步驟如下:
選路——如果紙上的數字小于指定房間的數字,則前往指定房間的右側房間,否則回到原來房間并進入右面的下一房間;
取數——前往指定房間將這個房間的數字抄寫在紙上,然后回到原來房間并進入右面的下一房間;
加數——前往指定房間將這個房間的數字加上自己紙上的數字,將結果寫在紙上并擦除紙上原有數字,然后回到原來房間并進入右面的下一房間;
存數——前往指定房間將紙上的數字抄在房間里,并擦除房間里原有數字,然后回到原來房間并進入右面的下一房間,如房間里數字是99,則是迷宮的出口。
以圖4列表迷宮的工作過程為例:
①前往02號房間選路,因默認數字0小于99,前往03號房間;
②前往09號房間取數,得到01,回到03號房間,進入04號房間;
③前往10號房間加數,01+00得到01,寫在紙上,回到04號房間,進入05號房間;
④前往10號房間存數,將01抄寫在房間里,回到05號房間,進入06號房間;
⑤進入11號房間選路(開始新一輪的“選路”“取數”“加數”“存數”),因紙上的01小于06,則進入12號房間……以上過程,實際上做的是對前5項自然數進行累加。
麻雀雖小,五臟俱全。計算機系統(tǒng)中的存儲器、控制器、運算器的思想以及機器語言中的操作碼和操作數,都能通過這個列表迷宮計算機體現出來。這也是一種將算法教學和計算機系統(tǒng)結構教學作關聯的方法。
探索迷宮和構造迷宮
博爾赫斯關于迷宮的小說,既可以認為是關于迷宮的敘事,也可以認為是一種敘事的迷宮[9],而本文則有著類似的企圖:告知讀者如何構造一個迷宮,雖然也的確是目的之一,但這其實并非最重要的,更重要的東西隱藏在所展現的列表迷宮背后,那里有著很多個各式各樣的迷宮,它們的工作方式和工作目的各不相同,其豐富的多樣性是難以在日常生活中找到相匹配的情境的?!懊詫m”這個詞具有強烈的抽象特征,它從簡單中涌現出復雜,達成一種趨向于無限的比喻。迷宮賦予日常事物以一種非日常的安排,在迷宮中穿行,總是因為遇見熟悉和反復出現的東西而讓人困惑,日常生活和工作常常如一個沒有出口也缺乏新鮮感的迷宮,但只要換成迷宮構筑者的視角,一切又變得如此豐富和有趣。
參考文獻:
[1]白楊.博爾赫斯:無限重寫與迷宮敘事[J].閱讀與寫作,2010(04):6-8.
[2]李潔.博爾赫斯的“超文本”意識——《交叉小徑的花園》與“超文本”概念的對照[J].赤峰學院學報:漢文哲學社會科學版,2009,30(10):105-106.
[3]格里莫·馬丁內斯,周止琉.博爾赫斯與數學[J].敘事:中國版,2013:155-169.
[4]高利民.莊子無用之用的另一種解讀[J].復旦學報:社會科學版,2005,47(04):105-112.
[5]馬周周.莊子教育技術哲學詮釋[J].電化教育研究,2010,31(09):44-48+63.
[6]薛富興.陽明格竹:中國古代認識論史上的一樁公案[J].社會科學,2015(02):116-126.
[7]崔基勛.論“非對象化”之觀的涵義——以老子與邵雍的“以物觀物”為例[J].上饒師范學院學報,2020,40(05):36-42.
[8]張謙.江南園林中的迷宮趣味性[J].中國建筑裝飾裝修,2022(13):106-108.
[9]張曄.試論后現代小說的“迷宮”特質——以《小徑分岔的花園》和《哈扎爾辭典》為例[J].常州大學學報:社會科學版,2013,14(02):76-79.