2013-12-13 42 views
3

我試圖根據此頁面創建elisp中原子類型的分類:Programming TypesElisp原子類型分類

這裏是我做了什麼:

Atomic types: 
1. Integer 
2. Floating point 
3. Character ≡ Integer 
4. Symbol 

    4.1 Keyword symbol 

5. Array 

    5.1. String 
    5.2. Vector 
    5.2.1. Bool vector 
    5.3. Char table 

6. Hash Table 

問題:

  1. 是我的分類全部或我錯過了什麼?

  2. 儘管事實上這些對象可以進一步劃分,但數組和哈希表被視爲原子。爲什麼?

代碼:

(atom "aaa") 
;> t 

(atom [1 "two" (three)]) 
;> t 

(atom (make-hash-table)) 
;> t 

回答

3
  1. 有欠缺關鍵字符號,如:keyword。這由keywordp決定。

  2. 我認爲​​代表「不是一個列表」。

+1

「我認爲原子是代表‘不是列表’ - 是的,我認爲這是從舊時代,當時只有2 Lisp的類型返祖現象:原子和列表實際上,功能和微距也沒有一個原子,而不是一個列表 – user4035

+0

好的,我更新了問題,添加了「關鍵字符號」,現在分類已滿。 – user4035