Ansi Common lisp 读书笔记 1

第三章

构造#

因为 lisp 的所有对象本质上都是 list,所以所有的构造归根结底都是list的操作,即cons car cdr

等式#

  • eql 对象是否相等(包括引用的地址),也可视为判断是否是一个符号
  • equal 对象值是否相等

指针#

lisp 没有指针,只是引用。 lisp 会处理赋值的时候什么时候使用指针,什时候创建新的对象,主要考虑执行效率来决定。 因为 lisp 是有垃圾回收的,从诞生的时候就有。所以只要使用的值所占内存大于指针所占的内存,赋值的时候都是指针。之后交给垃圾回收去处理。 PS:我理解 setf 赋值都是指针,函数返回为创建新的对象