W!o 的派生‧十日談之《三》

我們在《 {x|x ∉ x} !!?? 》一文中,談到過︰

一八九二年弗雷格發表了兩篇重要的論文《論概念和對象》與《論意義和指稱》,開了『符號學』的大門,深入『語意學』的廳堂,將分析哲學推向另一座高峰。那這門學問到底說些什麼呢?比方說『』這個字吧︰一、馬字是個象形的符號;二、它是像著自然中可見的『那種動物 』── 馬是什麼?這構成了馬的『概念』,它可用以分辨『異同於馬』之物 ──;三、那種動物就是馬的『指稱』;四、這個指稱成為馬字代表的『意義』。當人們有了很多自然的、社會的『事事物物』的概念之後,或許『忘了』符號總是『抽象的』,不同於它所代表存在之事物,更不要說事物可能進化變遷,而符號也會在世代間存有差異。就像『獨角獸』一詞所說的那種獸果真存在嗎?一定不存在嗎?如果有一隻『獨角牛』,那它是『獨角獸』嗎?假使將來發現一種『獨角馬』,那它也是『獨角獸』嗎?其次符號符號的用法是『兩回事』,有人是否『意有別指』,特不加以區分故說著︰『戰爭』一點也不可怕它只是兩個字』!!

雖說這開啟了『形式語言』 formal language 研究的大門,就像在《λ 運算︰概念導引之《補充》※有名的組合子!!》文章裡,所講的︰

lispers.org-logo

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 科技所製造的。

那麼『 λ語言』就是那個由人類創造的始原之『巴別塔』。

日趨複雜之『符號系統』以及各種林立的『學術門派』,也許反而『遮蔽』了原初單純之『概念樞紐』。

300px-Formal_languages.svg

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.

330px-Turnstile_state_machine_colored.svg

有限狀態機

220px-Finite_state_machine_example_with_comments.svg

220px-Finite_State_Machine_Logic.svg

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.
表達式記憶體參照和算術指令

由於一般『程式語言』大都是用『 = 』表示『賦值』,『派生』也不例外,這樣就會產生 x = x + 1 這樣的『陳述句』。從『數學表達』來講,一點道理也沒有,所以曾經引發議論,也曾有建議用『』【※ APL】,終究因為『從眾性』以及鍵盤輸入『方便性』種種原因,、最後大家『習慣成自然』的了。

Python Basic Operators

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