自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

XGamer

先拿个苹果,吃完再拿西瓜。

  • 博客(10)
  • 收藏
  • 关注

原创 ANSI Common Lisp译本笔记9

Common Lisp 对象系统(CLOS)common lisp对象系统,简称为CLOS,是用一组用来实作面向对象编程的操作集。defclass:定义一个类格式:defclass 类名 () (字段))说明:字段又叫槽(slot),传给defclass的第三个参数必须是一个槽定义的列表。make-instance:实例化一个类,即创建一个类的实例。格式:make-

2017-10-12 14:03:21 396

原创 ANSI Common Lisp译本笔记8

宏求值eval:接收一个表达式,将其求值并返回。eval缺点:1.效率低,eval处理的是原始列表,要不当下编译它,或用直译器求值。这两种方法都比执行编译过来的代码慢。2.表达式在没有词法语境的情况下被求值。如:在let中调用eval,传给eval的表达式无法参照由let设置的变量。eval主要的作用是作为lisp的概念模型。函数coerce和com

2017-10-12 14:00:11 384

原创 ANSI Common Lisp译本笔记7

符号符号本身是以要一个对象所存在。一个符号可以用任何字符串作为名称,可通过调用symbol-name来获得符号的名字缺省情况下,common lisp在读入时,将符号名字所有的英文字母都转为大写,则表示缺省时不区分大小写。特殊语法用来参照符号:任何存在垂直杠(|)之间的字符序列被视为一个符号。在此种情况下读入的符号名不会转大写。宏字符和其他的字符被视为一般字符。若想用垂直杠(|

2017-10-12 13:50:07 428

原创 ANSI Common Lisp译本笔记6

输入输出common lisp有两种流:字符流、二进制流字符流流是用来表示字符来源与或终点的lisp对象。输入缺省是从*standard-input*流读取,输出缺省是在*standard-output*流。最初会在相同的地方:一个表示顶层的流。一个路径名是一种可携的方式来指定一个文件。一个路径名有6个部分:host、device、directory、name、

2017-10-12 13:47:04 394

原创 ANSI Common Lisp译本笔记5

函数fboundp:判断一个函数名是否有一个给定的符号。测试代码:CL-USER> (fboundp '+)Tsymbol-function:配置一个名字给一个函数。测试代码:CL-USER> (setf (symbol-function 'add2) #'(lambda (x) (+ x 2)))#CL-USER> (add2 1)3一般地,使用字符串作为函数的第

2017-10-12 13:17:49 336

原创 ANSI Common Lisp译本笔记4

控制流区块区块的基本操作符:progn、block、tagbodyprogn:对主体中的每个表达式依次进行求值,返回最后一个表达式的值。如:(progn (format t "a") (format t "b") (+ 1 1))输出为:ab23block:像一个带有名字及紧急出口的progn。第一个参数为符号。可在block中使

2017-10-12 08:32:23 597

原创 Common Lisp译本笔记4之第五章 函数

所有的lisp程序的最基本的组成:函数、变量、宏。函数用宏defun定义格式:(defun 函数名 (形参列表) 函数体)如:(defun say (str) (format t "~A" str))约定:1、一般类型转换的函数会在名字中使用→2、将一个字符串转为微件(widget)的函数会叫做string->widget3、函数名中的连接符不是下划线,

2017-10-10 18:52:58 312

原创 Common Lisp译本笔记3之第四章 语法和语义

大多数编程语言,语言的处理器(无论是解释器或编译器)的操作方式都类似黑箱操作。在黑箱内部,语言的处理器通常分成子系统。一个典型的任务划分思路:将处理器分为三个阶段,每个阶段为下一个阶段提供内容。1、一个词法分析器将字符流分拆成语元并将其送进一个解析器2、解析器再根据该语言的语法在程序中构建一个表达式的树形表示。这棵树被称为抽象语法树。3、随即被送进一个求值器,求值器要么直接解释

2017-10-10 17:42:50 528

原创 Common Lisp译本笔记1之第二章 REPL简介

common lisp源文件扩展名一般为.lisp或.clemacs命令:C-c C-q调用:slime-close-parens-at-point。将插入必要数量的闭括号以匹配当前的所有开括号。emacs命令:C-c C-c可以编译光标所在的当前lisp代码emacs命令:C-c C-z可以回到REPL(lisp编译环境)emacs命令:在REPL

2017-10-10 17:41:13 401

原创 Common Lisp译本笔记2之第三章:简单的数据库实现(源码)

;;定义一个全局变量,用于存放数据(defvar *db* nil);;制作一个CD需要的信息(defun make-cd (title artist rating ripped) (list :title title :artist artist :rating rating :ripped ripped));;将一条CD信息记录到全局变量中(defun add-record

2017-10-10 15:00:55 314

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除