Emacs Elisp中的char表包含什么?

Emacs Elisp中的char表包含什么?,emacs,elisp,Emacs,Elisp,当我将某些内容设置为char表时,它会创建额外的内部char表。例如: ELISP> (setq *test-tbl* (make-char-table 'test 0)) #^[0 nil test 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] ELISP> (ase

当我将某些内容设置为char表时,它会创建额外的内部char表。例如:

ELISP> (setq *test-tbl* (make-char-table 'test 0))
#^[0 nil test 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

ELISP> (aset *test-tbl* 3 5)
5
ELISP> *test-tbl*
#^[0 nil test
     #^^[3 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
     #^^[1 0
           #^^[2 0
                 #^^[3 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
                 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
           0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
     0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

ELISP>

什么是
#^[…]
#^[…]
?为什么我第一次创建char表时它是一维的,但在我设置了一些值之后,它变成了一个嵌套数组?

为什么要使用char表?阅读它们的操作:M-:(info“(elisp)Char Tables”),如果您试图将它们用于某种程序存储,那么您没有正确使用它们。我在这里阅读:。我在REPL中尝试了它,并想了解它为何以这种方式表示。首先,当我创建它时,它是一个向量,但在使用
aset
设置一些内容后,根据:和案例表更改为类似嵌套向量的内容。