Lisp解析器如何处理list?
如果这个list前面有单引号,就会直接将该list返回(不包含单引号);
如果没有单引号,则会将这个list的第一个元素作为函数名去查找,如果找到,则调用该函数,如果找不到则返回错误消息。
一般按照从左到右的顺序一个一个处理list中的元素
如果list内部有嵌套,解析器总是从最里层的那个开始处理。
如何求值?
求值的结果总是返回一个值,如果求值错误,也会返回错误信息
内部list的值被求出后,用于替换该list所在的位置,作为一个元素
如果对一个数字求值,将得到数字本身
如果对一个没有括号的符号(非数字)求值,解析器会认为是对一个变量求值
如果对一个有括号的,当然是对一个list求值啦。参考前面一节'...如何处理list'
C-x C-e的等价命令是:eval-last-sexp 求距离最近的一个symbol expression的值