lisp
节奏胜于思想
这个作者很懒,什么都没留下…
展开
-
Emacs学习手记
参考:Learning GNU Emacs 3/e,9.8.The Lisp Modes,11.Emacs Lisp ProgrammingEmacs有三种Lisp模式,其命令名称如下: emacs-lisp-mode 用于Emacs Lisp代码的编辑(文件名.emacs或后缀.el) lisp-mode 用来编辑另一个Lisp系统的Lisp代转载 2014-06-13 22:03:02 · 729 阅读 · 0 评论 -
Lisp中car,cdr和cons都是基础函数。cons用于构造lists,car和cdr用于分割lisp。
奇怪的命名cons函数的名称并非没有含意:它是单词'construct'的缩写。car是短语'Contents of the Address part of the Register';cdr('could-er')是短语'Contents of the Decrement part of the Register'。这些短语说明了Lisp是在多么原始的机器上被开发的。car和转载 2014-06-14 00:19:29 · 2774 阅读 · 0 评论 -
Lisp语言:函数的定义,调用以及参数的传递
进一步了解一下Lisp语言中函数的使用,虽然从这篇文章才开始介绍函数,但是我们在之前的Lisp文章中已经多次接触函数了。函数的定义在Lisp中函数的定义使用下面的格式:[plain] view plaincopy(defun function1 () (format *query-io*转载 2014-06-14 21:52:24 · 1569 阅读 · 0 评论 -
Lisp语言:循环控制
了解了Lisp语言的条件判断,让我们看看Lisp语言的循环控制。对于稍有编程经验的人来说,循环是比较容易理解的,一般语言里面的循环无外乎for循环,while循环,do until循环等,有些语言的循环稍微复杂一点,也不过是一些变化形式。而Lisp语言里的循环却不是这么简单,查找Lisp中loop的使用就可以发现一系列的资料,有关于loop的简单使用的,有关于loop的高阶使用的,仔细看起来会觉得转载 2014-06-14 21:53:13 · 2349 阅读 · 0 评论 -
Lisp语言:函数的可选参数,剩余参数以及关键字参数
上一篇有关Lisp函数的文章简单介绍了函数的定义和调用,其中使用的参数是一般的参数。为了方便大家,将那篇文章的链接列出:http://blog.csdn.net/keyboardota/article/details/7642767如上文所述,如果定义函数时定义的是一般的参数,调用函数时传入参数的数量必须和函数定义的参数的数量相同,参数太多或者太少都会导致程序错误。这样转载 2014-06-14 21:54:25 · 1199 阅读 · 0 评论 -
Lisp语言:列表(List)
终于开始讨论列表了,列表是Lisp的精华之一,也是学习Lisp的难点之一。列表的精彩之处在于,它不仅仅是Lisp中的一种数据结构,它也是Lisp语言的构成部分,Lisp语言中的所有语句都是一个列表。反观我们常见的编程语言,语言中的语句有特定的语法,而这些语法只有编译器可以理解,用编程语言自己去解释自己几乎就成了一个不可能完成的任务。举个例子,看看下面的java语句:转载 2014-06-14 21:57:34 · 4717 阅读 · 0 评论 -
Lisp语言:二维数组和多维数组
很多情况下只有一维数组是不够用的,有时我们需要使用二维数组甚至是多维数组。Lisp中二维数组的使用和一维数组很接近,都是使用make-array函数来创建。创建一维数组的样例如下:[plain] view plaincopy(setf test-array-1 (make-array 10 :initial-element "转载 2014-06-14 21:55:53 · 729 阅读 · 1 评论 -
在LISP中用FFI调用C语言的程序-成功了
用C代码实现一个DLL,可以用VC创建一个工程,让它生成lispcall.dll,导出一个整形变量和一个函数,函数里面随便写点什么。LISPC_API extern int x;LISPC_API int f(int v) { return v*v; } 再创建一个LISP源文件,写上下面代码(defpackage ffi-test (:use common-lisp转载 2014-11-01 22:09:21 · 1338 阅读 · 0 评论