一、符號和名字
在上一篇 從程序員視角和編程語言角度看【中醫】:一種生命健康編程語言 ,我們談到了變量的命名問題,談到了語言和文化霸權,這篇短文,將繼續探討名字問題的重要性。
名字事關話語權,事關地位,甚至事關“霸權”,如果不信,你兒子的名字怎么取,跟你老婆姓還是跟你姓?假如你老婆說兒子必須跟她姓,這個名字問題是不是一下子就變成非常重要的問題了?
變量的符號語義
前一篇同樣的問題繼續看:
vA="";
vB="";
請問這是一個意思嗎?
如果從變量值的語義來看,是一個意思;


回過頭來看,那么多碎鏡子,哪一塊里面是豬八戒?
你可以說都是,也可以說都不是。
現在回來說,這些變量,就是打碎了的鏡子,變量的值,就是豬八戒的真身。
變量的易變性與不變性
var 鏡子1=“”; 鏡子1=“豬八戒”; 鏡子1=“孫悟空”;
上面的偽代碼說明,鏡子這個變量的值,變了,所以我們說鏡子是一個變量,名副其實啊!
但是,如果有人問,鏡子里面到底是豬八戒,還是孫悟空?
這個問題不好回答,因為沒有說是哪個時候的鏡子,是一分鍾前的,還是一分鍾后的?
所以,變量易變這個特征,它帶來好處的同時,卻增加了更多的麻煩。
其實,要解決這麻煩,我們把鏡子換成照片:
var 照片1=“豬八戒”; var 照片2=“孫悟空”;
當然實際產生一張照片的過程還是比較復雜,我們這里將這個過程簡化,認為一張照片就是膠卷上的一張底片生成的,底片用了就不能再使用了,也就是說,照片一旦拍了,就不能改變了,但是照片在使用之前,是可以用來拍攝任意照片內容的,所以,這里又引出了一個變量的“不變性”問題。
變量的不變性,使得變量的值變得穩定,追蹤變量的值變得簡單。很多函數式語言都支持這種“不可變變量”的,例如在F#中,可以使用下面的方式來證明:
let x = 10 let y = 5 let x = x + y // Compile Error
函數式語言變量的不變性,使得在高並發下程序運行的安全性得到了保證,不用擔心某個線程把變量修改了,缺點就是需要更多的內存來復制變量值,程序運行效率降低。
符號推理
變量的這種不變性,有些函數式語言稱之為“變量綁定”,變量和它的值一旦綁定后,就不能改變了。這樣,我們討論某個變量的時候,就可以等價的討論它綁定的值。這是一個很有用的方式,比如匯編語言,我們用一些匯編指令符號,來代替具體的二進制機器指令,為編制復雜的計算機程序成為可能;之后,我們又進一步對匯編指令進行抽象,發明了計算機高級語言,為編制大規模復雜程序提供了可能。假如你不是搞計算機的,但你學習過中學數學吧,“代數”,解方程總知道吧?我們用代數來求解復雜的方程,化繁為簡。在物理學中,符號在物理學公式中的作用更加重要了,比如愛因斯坦的質能方程:
E=mc²
方程中,E代表能量,m代表物質的質量,c代表光速常量,質能方程描述了質量與能量之間的當量關系的方程。
方程式的左邊表示能量,方程式的右邊,定義了質量和光速常量的計算關系,通過這種關系可以計算出物質質量轉換為能量的大小。
由於這個方程式非常著名,沒有它就沒有原子彈,就沒有二戰后的和平,就沒有人類取之不盡的核能能源,所以在這個方程式中,這幾個符號的關系就規定好了,從這種符號的關系,可以得到非常重要的理論並且應用這種理論發明各種偉大的或者重要的技術,那么我們在討論過程中進行的這些活動,站在符號的角度,它就是“符號推理”。換言之,我們在討論能量和質量的關系的時候,符號E “隱藏”着這符號mc² 的關系,這個關系在其他人不能發現,但是愛因斯坦發現了,所以愛因斯坦能成為偉大的科學家,而我們不能。對我們普通人而言我們沒有能力去揭示事務內部的本質的機制,但我們可以從事物之間外部的表象來總結分析,從而去假設事物內部的運行規律,然后再用這個假設來解釋更多的外部現象。如果基於這種假設能夠比較完善的解釋事物之間淺顯的容易證實的關系,那么這個假設就是“科學”的,這個研究方法就是科學的研究方法。
如果這些符號,不是英文字母,單詞,而是中文詞匯,比如陰,陽,金,木,水,火,土,天干地支,不可以嗎?當然可以,中醫的陰陽五行理論,正是這樣一套符號推理體系。
二、【藏像】理論
【解剖學】的困境
在古代,受限於科學技術的條件,我們不能直接揭示出一些事物的內部機制,但能夠用上面說的同樣的方式,從事物外部的表象之間的關系,來推導事物的內部機制。在中醫的語境中,這種方法理論,就是“藏像”理論。
百科詞條這樣解釋“藏像”:
“藏象”二字,首見於《素問·六節藏象論》。藏指藏於體內的內臟,象指表現於外的生理、病理現象。藏象包括各個內臟實體及其生理活動和病理變化表現於外的各種征象。
藏象學說是研究人體各個臟腑的生理功能、病理變化及其相互關系的學說。它是在歷代醫家在醫療實踐的基礎上,在陰陽五行學說的指導下,概括總結而成的,是中醫學理論體系中極其重要的組成部分。
為什么要用“藏像”理論去研究人體?
在西醫中,解剖學是一門很重要的學科,它是外科學的基礎,現在已經發展到了顯微外科學,解剖學通過將人體的組織,器官進行深入的解剖,尋找出人體的詳細構造結構。但是,這種對人體的研究方式,有一個先天的缺陷,人體是一部復雜的活的精密的“儀器”,不太可能對活的生命體進行解剖觀察,因此現有解剖學得出結論不足於真實解釋人體構造運行的規律。
黑盒測試與白盒測試
作為程序員,天天跟測試打交道,一定知道黑盒測試跟白盒測試的概念。大部分測試人員,都在做黑盒測試,即通過運行程序,在功能操作中發現你的bug,而不是反編譯你的程序,然后一行行閱讀代碼,來分析尋找你的bug。作為開發人員的你,都不太可能通過僅閱讀自己的代碼就發現所有bug,怎么可能要求測試人員做到白盒測試呢?所以,黑盒測試,是一種被證明了的可行的測試方式,也是軟件工程中必須做的一個工作環節,如果說軟件工程是一種科學的工程學方法,你不能說黑盒測試不科學吧?
既然我們不能要求測試人員來做白盒測試,那么就不要要求古代的醫生必須要會搞現在這樣的解剖才算是醫生了,他們通過對人體外表症狀和相關關系的分析研究,一樣能夠找到人體健康運行的規律。這種方法,就是“藏像”理論的研究方法。我們不必去活體解剖一個病人,看他內臟有什么病變,我們通過中醫基礎理論的氣血經絡,觀察發現同一類疾病相關的人體外在的表現,推導此時人體內部臟腑功能的運行情況,然后再從這些情況來推導出臟腑功能改變的關系,預測出疾病發展轉變的路徑,最后再通過人體外部表現出來的新的病症,來驗證這個理論推導的正確性。
扁鵲見蔡桓公
有一個故事,能夠很好的說明這個過程,這就是《扁鵲見蔡桓公》:
扁鵲見蔡桓公,立有間,扁鵲曰:“君有疾在腠理,不治將恐深。”桓侯曰:“寡人無疾。”扁鵲出,桓侯曰:“醫之好治不病以為功!”
居十日,扁鵲復見,曰:“君之病在肌膚,不治將益深。”桓侯不應。扁鵲出,桓侯又不悅。
居十日,扁鵲復見,曰:“君之病在腸胃,不治將益深。”桓侯又不應。扁鵲出,桓侯又不悅。
居十日,扁鵲望桓侯而還走。桓侯故使人問之,扁鵲曰:“疾在腠理,湯熨之所及也;在肌膚,針石之所及也;在腸胃,火齊之所及也;在骨髓,司命之所屬,無奈何也。今在骨髓,臣是以無請也。”
居五日,桓侯體痛,使人索扁鵲,已逃秦矣。桓侯遂死。
神醫扁鵲通過觀察蔡桓公外部的病症,就知道了蔡桓公此時所得何病,並且還能預知此病的演變發展,同時給出蔡桓公合適的治療方案。無奈蔡桓公煒疾忌醫,不治而亡。扁鵲的這個故事,他使用的方法正是中醫的"藏像"理論的方法。
小結
這兩篇文章是從程序員和軟件編程角度,來觀察解釋中醫理論的,本篇從變量的表象到變量的內部關系,探討了變量的易變性和不變性,並且由變量的不變性討論了符號推理的簡單原理,由這種推理方式說明了對於復雜問題的解決模式,這就是由表及里問題分析解決模式,這種模式也是工程學中科學的工作方式,中醫使用的“藏像”理論,正是使用的這種模式。