表格的作用就是存储信息。在表格中,信息的形式以(cons x y)的形式(叫做记录)保存,x是关键字,用来标记信息,而y就是存储的信息。
在一维表格中,信息只要通过一次索引就可以获得(通过索引x),而在二维表格中,需要两次(首先索引获得子表格,然后在子表格中索引x)。
不管是一维表格还是二维表格,都有骨架,骨架是以*table*打头的表(list,不是queue),如下表中的骨架有三个骨架序列,第一个骨架序列称为“哑记录”。我们用“哑记录”标记这个二维表格。那么这个二维表格就是*table*。因为哑记录的存在,所以在应用这个表格的时候,我们都要跳过第一个item,(cdr table).
下图为二维表格*table*,我们看到这个二维表格的两个subtable分别是math和letters
要构造这个表格,只要
(put 'math '+ '43)
(put 'math '- '45)
(put 'math '* '42)
(put 'letters 'a '97)
(put 'letters 'b '98)就好了,该表格的名字就是*table*,遗憾的是,我们不能改变表格的名字,代码中已经设定了。
这里的表格就是2.4.3节的基础。