一. 前言 Lisp語言
Lisp誕生的時候包含了9中新思想,其中一些被用於其他高階語言,我們已經習以為常,至今還有2種是Lisp獨有的。
- 條件結構 (即if-else結構),在Fortran 1時只有基於底層機器指令實現的goto結構。
- 函式也是一種資料型別 Lisp語言中,函式跟整數和字串一樣,屬於資料型別的一種,有自己的字面表示形式(literal representation),能儲存在變數中,也能當作引數傳遞。
- 支援遞迴
- 變數的動態型別 ,所有變數實際上都是指標,所指向的值有型別之分,而變數本身沒有,賦值或繫結變數都相當於複製指標,而不是複製他們指向的資料。
- 垃圾回收機制
- 程式由表示式組成,Lisp程式是一些表示式樹的集合,每個表示式返回一個值,大多數後來的程式都由表示式和語句組成。
- 符號型別,符號實際上是一種指標,指向儲存在雜湊表中的字串,所以比較兩個符號是否相等,只需看其指標是否一樣即可,而不用逐個字元比較。
- 程式碼使用符號和常量組成的樹形表示法
- 無論什麼時候整個語言都是高度可用的,Lisp不真正區分讀取期,編譯期和執行期,可以在讀取期編譯或執行程式碼,也可在編譯期讀取或執行程式碼,或在執行期讀取和編譯程式碼
若程式語句看起來像資料,則其很容易作為其他資料的輸入