Lisp语言学习
文章平均质量分 81
通过对practical common lisp学习,掌握Lisp语言。
Lisp 作为经典的黑客语言,日久弥新。Lisp是一种能改变思想的语言。
卫见见
这个作者很懒,什么都没留下…
展开
-
Common Lisp Loop 宏实例
Common Lisp Loop 宏教程Loop 宏是Common lisp操作符中最有价值和文档最少的操作符之一。它的价值体现在它比lisp的其他构造,例如maping 操作符和递归操作符,更加强大,紧凑和具有更强的可读性。并且对于那些用传统语言工作的程序员来说,Loop宏使用的编程方式会更容易理解。这个教程将提供给你如何使用Loop宏的例子。Loop宏和其他大多数的Lisp表达式不原创 2012-08-17 17:24:33 · 11323 阅读 · 0 评论 -
Lisp函数apply和funcall的比较
CommonLisp提供了两个函数来通过函数对象来调用函数:Apply和Funcall函数。 得到函数对象的方法是#‘,其实就是FUNCTION函数。例如: (foo 1 2 3) == (funcall #'foo 1 2 3)apply和funcall第一个参数都是一个函数对象。这个对象或者是函数本身,例如#’+, 或者是一个符号,这个符号有一个函数在它的函数区域,例如 ‘+ 。原创 2012-08-06 11:41:06 · 11987 阅读 · 0 评论 -
Lisp映射函数MAP,MAPC, MAPCAR, MAPCAN, MAPL, MAPLIST, MAPCON对比
介绍之前有必要先介绍一个Lisp的集合数据类型,这样才能更容易的理解这几个的函数的区别和联系。任何语言对集合的分类可以分为两种类型,一种是以一个整数为索引的类数组类型 和 一个可以用key来访问值的表类型。在不同的语言中,前者一般叫做数组(array),列表(list)和元组(tuples)。后者一般叫做哈希表(hash table),关联数组 (associative arrays), Map原创 2012-08-03 18:17:11 · 6591 阅读 · 0 评论 -
Lisp的作用域和生存期(scope and extent in lisp)
在lisp语言中,scope和extent的概念非常常见。作用域和生存期说的是对象或者是结构在程序的什么时候被引用。作用域指的是空间或者文本域。生存期指的是引用的时间间隔。这两个概念是紧密联系的概念。作用域关注空间而生存期关注于时间。让我们看一个简单的例子:(defun copy-cell (x) (cons (car x) (cdr x)))变量x的作用域是defun 形原创 2012-07-29 15:27:53 · 4066 阅读 · 0 评论 -
Lisp真的是屠龙之技吗?
Lisp真的是屠龙之技吗?对Lisp的学习有一段时间了,Lisp这门50多年的语言在天朝这样一个浮躁的环境里面的确生存空间极小,除了有名的伞哥现在从事Common Lisp的开发工作之外,其他没有听说过几个。51job和智联以Lisp为关键字搜素,相关职位不到1页,几乎全部是AutoCAD Lisp开发,或者要求应聘者熟悉的一门函数语言里面出现,并且还是和perl/erlang并列的形式出现,要求原创 2012-07-27 17:36:16 · 51231 阅读 · 17 评论 -
ubuntu下commonlisp配置
<!--@page {margin:0.79in}h2 {margin-bottom:0.08in}h2.western {font-family:"Liberation Sans",sans-serif; font-size:14pt; font-style:italic}h2.cjk {font-family:"宋体"; font-size:14pt原创 2012-06-21 09:00:49 · 4931 阅读 · 0 评论 -
Lisp Quote 和Backquote分析
对于Lisp初学者来说,最不容易理解的就是Lisp强大的宏。在宏定义中你看到的最多的字符可能是就是引用和反引用。引用和反引用构成了Lisp的基石,所以我先就引用和反引用做一个介绍。宏就留在以后介绍了。引用 (quote)引用Quote其实是Lisp 25个特殊操作符之一,它接受一个单一表达式作为其参数,并且简单的返回它。不经过求值过程。例如下面表达式(quote (+ 2 3)原创 2012-07-14 18:27:39 · 4985 阅读 · 3 评论 -
ASDF(Lisp项目构建利器)使用说明
这篇文档的目的 这篇文档的目的是简要介绍ASDF的使用。它不是介绍ASDF高深的技巧和设计。一个系统定义文件只是定义了源文件的依赖和编译加载顺序。如果B.lisp文件含有被A.lisp使用的定义的代码,那么A.lisp依赖B.lisp。在大多数情况下,解决依赖问题相当的繁琐,所以写一个小的脚本通常可以工作。但是,学习使用正确的工具会让你节省大量的时间。在这个小教程里面,我们将集中关注一个简翻译 2012-07-08 20:38:00 · 7405 阅读 · 0 评论 -
Lisp项目构建和包管理工具
如果用Common Lisp(以下简称CL)编写大型程序的话,肯定会遇到如下两个问题:1,多个源文件如何组织,编译和依赖。2,如何引入其他的Lisp软件包。这就不得不引入ASDF和Quicklisp两个工具了。项目构建工具-ASDF ASDF是Another System Definition Facility的缩写。这个名字够个性(程序员都知道为什么)。ASDF原创 2012-07-06 14:50:58 · 6010 阅读 · 1 评论 -
Lisp in a box 安装指南
什么是Lispbox?lispbox 是Common Lisp的集成开发环境。实际是Lispbox只是组合配置了Emacs编辑器,SLIME(Emacs的高级Lisp 交互模式)和Quicklisp 库管理工具和CCL Lisp编译器。这些工具组合在一起给你了你所期望的一个ide能给你的所用的功能集合,甚至更多。Lispbox使你可以迅速和简单的投入使用。原创 2012-06-24 22:15:24 · 15297 阅读 · 3 评论 -
Lisp的本质(The Nature of Lisp)
Lisp的本质(The Nature of Lisp) 作者 Slava Akhmechet 译者 Alec Jang 出处: http://www.defmacro.org/ramblings/lisp.html简介最初转载 2012-07-05 15:48:43 · 2780 阅读 · 1 评论