Common-Lisp
文章平均质量分 82
love_register
这个作者很懒,什么都没留下…
展开
-
Common Lisp笔记(2)
Common Lisp 创建变量Common Lisp 是动态类型的,类型错误会被动态的检测到。 Common Lisp 是强类型的,因为所有的类型错误都将被检测到,无法将一个对象作为其不属于的类型的实例对待。 Common Lisp 中所有的值都是对象的引用。因此,将一个变量赋予新值会改变该变量所指向的队形,而对之前引用的对象没有影响。let操作符引入新变量 形式:(let (variab原创 2016-03-23 21:14:11 · 472 阅读 · 0 评论 -
Common Lisp 笔记(1)
Common lisp 执行过程 在大多数编程语言中,语言的处理器,无论是解释器还是编译器的操作方式都类似于黑箱。在黑箱内部,语言的处理器各个子系统各自负责一部分文本转换成具体的行为或目标代码。例如:一个词法分析器将字符流分拆成语元并送进解释器,解释器再构建表达式树形结构,称为抽象语法树,随后被送进一个求值器,求值器要么直接解释,要么编译成其他语言,例如机器码。 在Common Lisp中,执行原创 2016-03-23 19:36:53 · 432 阅读 · 0 评论 -
Common Lisp笔记(3)函数定义
函数一般使用 DEFUN 定义(defun name (parameter*) "Optional documentation string." body-form*)name 任何符号都可以作为函数名,通常函数名仅包含字典字符和连字符,但是在特定命名约束里,其他字符也允许使用。 Lisp 的风格是使用连字符也不是下划线,例如 frob-widget 比 frob_widget原创 2016-03-27 22:05:08 · 339 阅读 · 0 评论 -
Common Lisp笔记(4)
quote ##特殊操作符,接受单一表达式并返回 等同于符号” ` “(quote (+ 1 2)) 等同于`(+ 1 2)与 list 的区别:(quote (a b)) //两个符号本身的表(list (a b)) //两个值得表setf 宏通用赋值操作符(setf variable value)是宏,不是特殊操作符,可以检测所赋值的 variable 的形式,并展开成适当的底层操作来修原创 2016-04-26 22:03:56 · 435 阅读 · 0 评论 -
Common Lisp 笔记(4)
宏令 lisp 不同于其他语言的特性。标准控制结构定义新的句法抽象,不是像其他语言去创建新的函数抽象型或定义类的层次体系。几个标准控制构造宏if(if condition then-form [else-form])如果 condition 是 nil 并且没有 else-form 则返回 nilwhen 抽象 if 后如果执行多条语句需要用 porgn 的细节。// 自定义 wh原创 2016-05-05 17:01:42 · 395 阅读 · 0 评论