2013-12-13 45 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