Adolph两边

 

2015年4月25日

Lisp中编写宏的步骤以及规范

摘要: 一.编写步骤1.编写示例的宏调用以及它应当展开的代码,反之亦然.2.编写从示例调用中生成手写展开式的代码.3.确保宏抽象不产生"泄露".二.遵循规则1.除非有特殊理由,否则需要将展开式中任何子形式放在一个位置上,使其求职顺序与宏调用的子形式相同.2.除非有特殊理由,否则要确保子形式仅被求值一次,方法... 阅读全文

posted @ 2015-04-25 11:05 Adolph两边 阅读(570) 评论(0) 推荐(0) 编辑

2014年9月6日

一年成为emacs高手

摘要: http://blog.csdn.net/redguardtoo/article/details/7222501 阅读全文

posted @ 2014-09-06 22:11 Adolph两边 阅读(133) 评论(0) 推荐(0) 编辑

2014年7月1日

更新lispbox中的ccl和slime版本

摘要: 首先C-x C-f然后输入~,找到.emacs文件,根据slime官方文档说明的添加如下代码到文件末尾,重启一下emacs,slime就编译好了,然后这段代码就可以删除.否则每次启动emacs就算不用来编辑lisp代码,也会加载的.(add-to-list 'load-path "D:\\lispb... 阅读全文

posted @ 2014-07-01 17:48 Adolph两边 阅读(325) 评论(0) 推荐(0) 编辑

2014年5月22日

《On Lisp》第四章第三节图4.6中的rmapcar函数中展现的apply陷阱

摘要: (defun rmapcar (fn &rest args) (if (some #'atom args) (apply fn args) (apply #'mapcar #'(lambda (&rest args) (apply #'r... 阅读全文

posted @ 2014-05-22 00:00 Adolph两边 阅读(412) 评论(0) 推荐(0) 编辑

2014年5月7日

《On Lisp》第四章第三节图4.3中的prune函数fix

摘要: 这个函数作者的原意是删除表中test位真的部分,并且表按原样返回.作者给出的的测试用例如下:(prune #'evenp '(1 2 (3 (4 5) 6) 7 8 (9)))返回结果是:(1 (3 (5)) 7 (9))这里的(9)应为刚好被evenp判断为假,所以正常包含在列表当中了,可是当有类... 阅读全文

posted @ 2014-05-07 21:35 Adolph两边 阅读(684) 评论(0) 推荐(0) 编辑

2014年5月2日

函数式编程的要点

摘要: 1.利用返回值而不是副作用来写程序(副作用包含破坏性修改对象以及对变量赋值).2.需要返回多个值请使用multiple-value-bind和values的组合方式.3.函数式编程需要思考你要什么,而不是要怎么做.4.一个给定的调用可以安全的修改它唯一拥有的东西(函数拥有被调用函数返回的对象,但不拥... 阅读全文

posted @ 2014-05-02 23:35 Adolph两边 阅读(140) 评论(0) 推荐(0) 编辑

2014年4月8日

vim+slimv+sbcl搭建lisp的IDE

摘要: 流水账而已,分享给需要的人.slimv的首页http://kovisoft.bitbucket.org/tutorial.html里面介绍说slimv开箱即可用,可是老天总会给一些奇怪的问题给你,因为是vim新手,对教程给出的windows配置没有太在意,直接拷贝,修改了路径,但是发现vim无论如何... 阅读全文

posted @ 2014-04-08 13:05 Adolph两边 阅读(1540) 评论(1) 推荐(1) 编辑

2014年4月1日

lisp中的cons

摘要: 看到ANSI Common Lisp 第三章的游程编码时,就发现作者很准确的使用了list和cons来生成目标列表,虽然list是由cons扩展而来,区别也仅仅是最后一个元素的加入方式,于是勾起了之前对cons的疑问.当看到下面的这样的代码:(cons '(a b) '(c d))你会觉得输出结果是((a b) (c d))还是((a b) c d)虽然敲入一下代码,就知道是后者,可是,为什么呢?仔细看第三章cons的说明,发现cons放在c语言里面,无非就是一个如下的结构typedef struct _cons cons;struct _cons{ void* content 阅读全文

posted @ 2014-04-01 19:12 Adolph两边 阅读(1608) 评论(0) 推荐(0) 编辑

2014年3月28日

lisp中的nil

摘要: ANSI Common Lisp 第二章 课后习题 7.只使用本章所介绍的操作符,定义一个函数,它接受一个列表作为实参,如果有一个元素是列表时,就返回真。1 (defun have-list (lst)2 (if (null lst)3 nil4 (do ((i lst (setf i (cdr i))) (exis nil))5 ((null i) exis)6 (setf exis (and (listp (car i)) (not (null i)))))))测试如下当看到(have-list '(n... 阅读全文

posted @ 2014-03-28 17:45 Adolph两边 阅读(353) 评论(0) 推荐(0) 编辑

2011年12月24日

协议栈初始化流程以及一些重要的oop思想.

摘要: 1.基础系统初始化 1.1.初始化内存 1.2.初始化网络文件系统2.初始化协议栈 这里有一些重要的oop设计.地址簇包涵了数据类型,各类型包涵了自己对应各协议的数据处理方式.3.设备接口初始化4.设备驱动初始化 设备驱动初始化以后,会在设备描述结构中区分出设备抽象层,以及特定网络设备层(主要关联设备特定的 数据).设备抽象层的数据主要提供给设备无关层使用.设备无关层再把数据提交给上层. 阅读全文

posted @ 2011-12-24 21:09 Adolph两边 阅读(242) 评论(0) 推荐(0) 编辑

导航