Filling CDs(录入 CD)

    只有单一记录还不能算是一个数据库,需要一些更大的结构来保存记录。出于简化目的,使用列表似乎也还不错。同样出于简化目的,也可以使用一个全局变量 *db*,它可以用 DEFVAR 宏来定义。名字中的星号是 Lisp 的全局变量命名约定。

    可以使用 PUSH 宏为 添加新的项。但稍微做得抽象一些可能更好,因此可以定义一个函数 add-record 来给数据库增加一条记录。

    现在可以将 add-recordmake-cd 一起使用,来为数据库添加新的 CD 记录了。

    那些每次调用 add-record 以后 REPL 所打印出来的东西是返回值,也就是函数体中最后一个表达式 PUSH 所返回的值,并且 PUSH 返回它正在修改的变量的新值。因此你看到的其实是每次新记录被添加以后整个数据库的值。