ELisp學習

sgqmax發表於2024-11-01

一. 前言 Lisp語言

Lisp誕生的時候包含了9中新思想,其中一些被用於其他高階語言,我們已經習以為常,至今還有2種是Lisp獨有的。

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

若程式語句看起來像資料,則其很容易作為其他資料的輸入

相關文章