我們在《 {x|x ∉ x} !!?? 》一文中,談到過︰
一八九二年弗雷格發表了兩篇重要的論文《論概念和對象》與《論意義和指稱》,開了『符號學』的大門,深入『語意學』的廳堂,將分析哲學推向另一座高峰。那這門學問到底說些什麼呢?比方說『馬』這個字吧︰一、馬字是個象形的符號;二、它是像著自然中可見的『那種動物 』── 馬是什麼?這構成了馬的『概念』,它可用以分辨『異同於馬』之物 ──;三、那種動物就是馬的『指稱』;四、這個指稱成為馬字代表的『意義』。當人們有了很多自然的、社會的『事事物物』的概念之後,或許『忘了』符號總是『抽象的』,不同於它所代表的存在之事物,更不要說事物可能進化變遷,而符號也會在世代間存有差異。就像『獨角獸』一詞所說的那種獸果真存在嗎?一定不存在嗎?如果有一隻『獨角牛』,那它是『獨角獸』嗎?假使將來發現一種『獨角馬』,那它也是『獨角獸』嗎?其次符號與符號的用法是『兩回事』,有人是否『意有別指』,特不加以區分故說著︰『戰爭』一點也不可怕,它只是『兩個字』!!
雖說這開啟了『形式語言』 formal language 研究的大門,就像在《λ 運算︰概念導引之《補充》※有名的組合子!!》文章裡,所講的︰
Lispers
“Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot.”
— Eric Raymond, “How to Become a Hacker“
人類的語言有眾多的『方言』是因為『鄉土』與『人文』的不同所造成的。然而『LISP』 是一個程式語言,卻有著各種方言,想來是每個人對『事物概念』的『理解』和『詮釋』不一樣才發生的。假使如『Lispers』所說的︰
Lisp 是用奧秘的『外星人』Alien 科技所製造的。
那麼『 λ語言』就是那個由人類創造的始原之『巴別塔』。
日趨複雜之『符號系統』以及各種林立的『學術門派』,也許反而『遮蔽』了原初單純之『概念樞紐』。
This diagram shows the syntactic entities which may be constructed from formal languages. The symbols and strings of symbols may be broadly divided into nonsense and well-formed formulas. A formal language can be thought of as identical to the set of its well-formed formulas. The set of well-formed formulas may be broadly divided into theorems and non-theorems.
OUTPUTS = F (INPUTS) 或
OUTPUTS = F (INPUTS, STATE)
假使說『 λ 運算』就是研究『 λ 表達式』的『化約求值』,宛如『數學式子』的『計算求值』一般。如果『 λ 運算』可以是一個『通用』的『程式語言』,如此我們應當知道『表達式』 expression 在任一『程式語言』中的『重要性』。既然我們也知道『 λ 運算』與『圖靈機』是『計算對等』的,這樣『 λ 運算』之『純函式』 pure function 和『變元』,在『概念』上就聯繫到了『圖靈機』的機器『狀態』 state 與『狀態變遷規則』。或許可以比擬的說︰
當『 λ 運算』遇上『圖靈機』
『變元』『賦值』司『存取』 ── 狀態
『函式』『計算』管『進退』 ── 遷變新態
這也就是『典型』之 Von Neumann 的『計算機架構』與 Von Neumann 『程式語言』,彼此間『同形 isomorphism 同構』︰
program variables ↔ computer storage cells
程式變數對映計算機的儲存單元
control statements ↔ computer test-and-jump instructions
控制陳述對映計算機的『測試.跳至』指令
assignment statements ↔ fetching, storing instructions
賦值陳述對映計算機的『取得、儲存』指令
expressions ↔ memory reference and arithmetic instructions.
表達式對映記憶體參照和算術指令
由於一般『程式語言』大都是用『 = 』表示『賦值』,『派生』也不例外,這樣就會產生 這樣的『陳述句』。從『數學表達』來講,一點道理也沒有,所以曾經引發議論,也曾有建議用『←』【※ APL】,終究因為『從眾性』以及鍵盤輸入『方便性』種種原因,、最後大家『習慣成自然』的了。
What is an operator? 【什麼是運算子?】
Simple answer can be given using expression 4 + 5 is equal to 9. Here, 4 and 5 are called operands and + is called operator. Python language supports the following types of operators.
Arithmetic Operators
Comparison (i.e., Relational) Operators
Assignment Operators
Logical Operators
Bitwise Operators
Membership Operators
Identity Operators