第一想:語言系統
語言,是我們再熟悉不過的東西了,在我們生活的方方面面都用著它。有時候,我會想:“我是怎麼學會語言的?我又是怎麼講別人的語言解釋到自己能理解的意思?”
在我高中的時候,我就經常思考如何正確的理解一段文字,程式化的理解他。我當時的構想是詞性拆分,依次賦於其意思(或者是功能function)。我們假設最簡單的一句話,是由謂語賓語構成,如下列表:
1.打他
2.去上海
3.等我
可以看出,動詞及物的一個結構就是一個簡單的謂賓結構。我將他們定義為帶參功能函式 。什麼意思呢?我們看第一個示例,打 是一個動詞,是一個行為或者動作,我們假想它是一個函式function。那麼很容易理解他 就是一個函式的引數。可以提層為下面的表示形式:
function hit (aim){ ... ... }
當解析出打 的時候,後面緊接的名詞,我們可以解析為實參來傳。
.打他 = hit(他);
後面的示例我們也可以用相同的方法解析它:
去上海 = goto(上海);
等我 = wait(我);
我們先別急著往下構想,先整理出我們的結構,並將它規範。無規矩不成方圓= =
我們得到的第一個基本結構:謂賓結構( vi + n ),對於這種結構的解析,我們用帶參函式來解析,即function vi(n)。
但是,有沒有想過一個問題,就是我們剛剛舉得例子,謂語和賓語是有直接受作用的關係。就如例子1中的打他 ,打 是直接作用於他 上面。但是有些時候,在表達中,會存在一些特殊的表達關係,謂語不直接或者不作用於賓語上面 ,比如打掃衛生 ,如果我們提層,就會得到
clean(衛生);
很顯然我們定義clean函式時,指定的形式引數更希望是區域化的,不然我不知道打掃哪裡?
function clean(area){ ... ... }
area = {x:num1, y:num2, z:num3, position:path}
myroom_area = {x:5, y:5, z:3, position:current_path}
clean(myroom);
對於打掃這個動作來說,我們更加希望的賓語是能直接描述出我們要打掃的區域,衛生,在我們拆解的時候,當引數來傳毫無意義。(此處存在一定歧義,有人說衛生沒有名詞的意思,多為修飾詞;也有人說衛生是一個用於表徵乾淨的詞語,是一個名詞,如”這裡衛生真乾淨“,對於此處,我更加傾向於名詞表示)
關於詳細的格語法與漢語非常規謂賓結構,我部分參考了此文獻,有興趣可以去看一下,在中國知網檢視:ofollow,noindex">文獻一
所以我們還應該將謂賓結構細分一下:直接謂賓和間接謂賓。處理間接謂賓結構我們可以做代換。比如打掃衛生,將衛生作代換,用當前自己的所在區域 來代換成衛生,意味著,以後凡是看見打掃衛生,我們預設打掃當前房間,除非特別宣告。
從謂賓結構,我們可以確定一件事情,大都數的動詞(筆者不敢過於絕對但是心裡是絕對的)都是可是抽象成一個可執行函式。接下來我們聊聊主語的用處,我們繼續用上文的那幾個謂賓結構加上主語試試。
1.我打他
2.他去上海
3.你等我
假設上面三句話是我對你說的,你會發現,你真正回去做(處理)的事件,應該是3號事件等我。其他兩個你可以忽略(雖然很不禮貌)或者暫時忽略。這種情況,我們將主語適當的分分類。
第一類:可執行類主語。(自己瞎起的名字,畢竟都說了這個文集做的是語言構想,都是自己的構想,就將就命名了,其實還是有一定意思的),怎麼理解呢?仔細想想,如果我想讓你幫我取一個快遞,那麼我會怎麼稱呼你?或者我的那句請求主語應該是誰?主語可以是你,您,你的名字或者可以確定是你的代稱 。當我用這些做主語,那麼很明確的將行動目標指向你了把?那麼你就乖乖去幫我取個快遞吧,謝謝了~