- 博客(28)
- 资源 (38)
- 问答 (5)
- 收藏
- 关注
原创 Chrome 如何访问手机站?
打开Chrome安装目录运行如下命令C:\Users\fxys\AppData\Local\Google\Chrome\Application>chrome.exe --user-agent="Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Ge
2013-06-28 18:19:09 1412
原创 LISP DO循环斐波那契额数列
CL-USER> (do ((n 0 (1+ n)) (cur 0 next) (next 1 (+ cur next))) ((= 10 n) cur))55
2013-06-16 17:43:09 1313
原创 LISP 8.8 编写宏中宏
宏的作用是将常见的句法模式抽象掉,而反复出现在宏编写的特定模式同样也可受益于其抽象能力。最后的几个do-primes函数中,都是以let形式确保子形式仅被求值一次的,引入了一些变量用来保存宏展开过程中用到的生成符号。这也是一个常见模式,同样的也可以使用一个宏来将它抽象掉。;;;编写宏中宏(defmacro with-gensyms ((&rest names) &body b
2013-06-14 22:59:32 1401
原创 LISP 8.7.2 堵住漏洞2——修复变量名的漏洞
接上一节,先执行如下代码,观看效果:(do-primes-3-1 (ending-value 0 10) (format t "~d~t" ending-value)),死机没?最后一个需要堵上的漏洞是由于使用了变量名ending-value而产生的。问题在于这个名字(其应当完全属于宏实现内部的细节)它可以跟传递给宏的代码或是宏被调用的上下文产生
2013-06-14 22:21:12 1270
原创 LISP 8.7.1 堵住漏洞1——随机end值的漏洞及调用顺序漏洞
漏洞描述:使用查看展开式(macroexpand-1 '(do-primes-2 (p 0 (random 100)) (format t "~d~t" p)))返回结果:(DO ((P (NEXT-PRIME 0) (NEXT-PRIME (1+ P)))) ((> P (RANDOM 100))) (FORMAT T "~d~t" P))当运行展开式
2013-06-14 21:30:16 1353
原创 LISP 8.6 生成展开式
代码如上一篇一致使用使用macroexpand-1函数可以展开宏(macroexpand-1 '(do-primes-2 (p 0 19) (format t "~d" p)))返回结果:(DO ((P (NEXT-PRIME 0) (NEXT-PRIME (1+ P)))) ((> P 19)) (FORMAT T "~d~t" P))执行返回的结果:CL
2013-06-14 21:06:23 1117
原创 LISP 8.5 宏形参
(defun primep (number) (when (> number 1) (loop for fac from 2 to (isqrt number) never (zerop (mod number fac)))))(defun next-prime (number) (loop for n from number when (primep n) return n)
2013-06-14 20:53:12 1153
原创 LISP 7.6 Do循环
写一个遍历质数的程序(defun primep (number) (when (> number 1) (loop for fac from 2 to (isqrt number) never (zerop (mod number fac)))))(defun next-prime (number) (loop for n from number when (primep
2013-06-14 18:44:30 1916 2
原创 LISP 6.3 动态变量
词法绑定与赋予新值仅会影响当前作用域词法绑定案例CL-USER> (defvar *x* 10)*X*CL-USER> (defun foo() (format t "x:~a~%" *x*))FOOCL-USER> (foo)x:10NILCL-USER> (defun bar() (foo) (let ((*x* 20)) (fo
2013-06-13 21:28:52 1473
原创 LISP 6.1 变量的基础
CL-USER> (defun foo(x) (format t "Parameter:~a~%" x) (let ((x 2)) (format t "Out LET: ~a~%" x) (let ((x 3)) (format t "Inner LET: ~a~%" x)) (format t "Out LET: ~a~%"
2013-06-13 19:08:01 1089
原创 LISP 5.8-5.9 高阶函数与匿名函数
Common LISP中提供了两个函数对象来调用函数 funcall 与apply下面的函数是一个画点的函数,使用funcall函数(defun plot (fn min max step) (loop for i from min to max by step do (loop repeat (funcall fn i) do (format t "*")) (form
2013-06-13 16:53:54 1467
原创 emacs命令
emacs命令emacs中的每一个命令都有一个命令名,命令名就是该命令所对应的LISP函数的函数名。在emacs中,我们可以为这些命令配置快捷键,从而达到快速调用命令的目的。.使用emacs来执行命令的方法有两种:(1).使用Ctrl键 (2).使用Meta键。所有emacs命令都可以用Meta键表示出来,键盘上如果没有Meta键,则可以用Alt键或ESC键来代替。常用的emacs
2013-06-12 23:42:44 1561
原创 LISP 简单的数据库 3.8 使用宏优化Where语句
之前的查询条件判断语句如下,它们有太多的相似之处,使用宏来生成真正需要被执行的语句 (if title (equal (getf cd :title) title) t) (if artist (equal (getf cd :artist) artist) t) (if rating (equal (getf cd :rating) rating) t) (if
2013-06-12 22:53:25 1287
原创 LISP 简单的数据库 3.7 更新记录
增加update函数以更新记录;使用全局变量记录数据(defvar *db* nil);数据记录格式(defun make-cd (title artist rating ripped) (list :title title :artist artist :rating rating :ripped ripped));添加记录(defun add-record (c
2013-06-12 22:20:08 1193
原创 LISP 简单的数据库 3.6.2 优化查询算法
select-by-artist方法只能依据artist字段值进行查询,经过改进,可以使查询功能更强大可以使用其他字段值进行查询,但不需要重新写看上去差不多的算法增加select及where函数;使用全局变量记录数据(defvar *db* nil);数据记录格式(defun make-cd (title artist rating ripped) (list
2013-06-12 22:02:00 1261
原创 LISP 简单的数据库 3.6.1 依艺术家字段值进行查询
增加select-by-artist方法;使用全局变量记录数据(defvar *db* nil);数据记录格式(defun make-cd (title artist rating ripped) (list :title title :artist artist :rating rating :ripped ripped));添加记录(defun add-re
2013-06-12 21:51:01 1290
原创 LISP中 remove-if-not 及 remove-if
CL-USER> (remove-if-not #'evenp '(1 2 3 4 ))(2 4)CL-USER> (remove-if #'evenp '(1 2 3 4 ))(1 3)
2013-06-12 21:10:26 1683
原创 LISP 简单的数据库 3.5 保存和加载数据库
将*DB*中的数据信息保存到文件中,以及可以从文件中读取数据信息放置到*DB*全局变量中添加两个函数 save-db 及 load-db;使用全局变量记录数据(defvar *db* nil);数据记录格式(defun make-cd (title artist rating ripped) (list :title title :artits artist :rating r
2013-06-12 21:08:04 1930
原创 LISP 简单的数据库 3.4 改进用户交互
;使用全局变量记录数据(defvar *db* nil);数据记录格式(defun make-cd (title artist rating ripped) (list :title title :artits artist :rating rating :ripped ripped));添加记录(defun add-record (cd) ( push cd *db*))
2013-06-12 20:55:36 1276
原创 LISP 简单的数据库 3.3 查看数据库内容
格式化输出数据内容;使用全局变量记录数据(defvar *db* nil);数据记录格式(defun make-cd (title artist rating ripped) (list :title title :artits artist :rating rating :ripped ripped));添加记录(defun add-record (cd) ( push
2013-06-12 19:06:33 2422
原创 LISP 简单的数据库 3.2 录入CD
使用全局变量 *db*,来保存数据(defvar *db* nil)(defun make-cd (title artist rating ripped) (list :title title :artits artist :rating rating :ripped ripped))(defun add-record (cd) ( push cd *db*))
2013-06-12 18:57:23 1089
原创 LISP 简单的数据库 3.1 CD与记录
(defun make-cd (title artist rating ripped) (list :title title :artits artist :rating rating :ripped ripped))CL-USER> (make-cd "Roses" "Kathy" 7 t)(:TITLE "Roses" :ARTITS "Kathy" :RATING 7
2013-06-12 18:39:06 1027
原创 Lisp in a box 安装指南
什么是Lispbox?lispbox 是Common Lisp的集成开发环境。实际是Lispbox只是组合配置了Emacs编辑器,SLIME(Emacs的高级Lisp 交互模式)和Quicklisp 库管理工具和CCL Lisp编译器。这些工具组合在一起给你了你所期望的一个ide能给你的所用的功能集合,甚至更多。Lispbox使你可以迅速和简单的投入使用。Lispbox可以
2013-06-11 22:59:08 1869
原创 LISP中的基础知识
(quote x)返回x,我们简记为'x(atom x)当x是一个原子或者空表时返回原子t,否则返回空表()。在Lisp中我们习惯用原子t表示真,而用空表()表示假。> (atom 'a)t> (atom '(a b c))()> (atom '())t(eq x y)当x和y的值相同或者同为空表时返回t,否则返回空表()> (eq 'a 'a)
2013-06-11 16:00:54 1555
原创 【转】现实世界的LISP:Clojure语言初探
我在学生时代最喜欢两门程序设计语言:Scheme和Haskell。Scheme的简洁灵活和Haskell的纯函数世界都给我留下了 深刻印象,因此一直希望能用这样的语言做一些实际工作。了解到Clojure之后,欣喜地发现它结合了LISP和函数式语言的优点,同时又拥有JVM成熟 的生态圈,虽然年轻,但可以立即在实际项目中应用。开始使用Clojure使用Clojure最简便的方法是安装L
2013-06-10 17:58:26 1441
原创 【转】人工智能之父、Lisp语言发明者约翰麦卡锡去世
Lisp语言发明者、“人工智能之父”约翰·麦卡锡(John Maccarthy)于10月24日与世长辞,享年84岁。青少年时的约翰·麦卡锡聪慧过人,初中时他根据一份加州理工大学的课程目录自学完大学低年级微积分课程,也因此在1944年上大学时可以免修头两年大学数学,之后去普林斯顿大学研究生院继续深造。冯·诺依曼报告引发的好奇心约翰·麦卡锡的学术人生如何步入人工智能领域
2013-06-10 17:41:11 1519
commons-fileupload-1.2.1-bin.zip
2008-09-23
SVNbook使用手册
2008-09-21
TortoiseSVN使用手册
2008-09-21
TortoiseMerge使用手册
2008-09-21
JavaScript&DHTML&CSS中文版参考大全
2008-07-21
Houdini Engine For 3ds Max
2016-12-25
LISP新手入门
2013-06-11
Ultra Fractal 3.05
2010-07-10
PHP API 中文手册
2010-05-30
Discuz7.2 Water3风格
2010-05-27
非银行卡支付专业版接入包
2009-02-25
易宝支付-产品通用接入包
2009-02-25
JavaFX Script 编程语言中文教程PDF
2009-02-12
jquery 1.3 中文API
2009-01-21
jaxb-2_1_9.zip
2008-12-27
TS文件无法转换成MP4格式
2020-09-14
jsp如何生成视频缩略图
2009-06-29
jsp如何生成视频缩略图
2009-06-24
hql 如何查询到最后一条记录
2009-04-15
jquery 单击事件 局部变量 越界 问题
2009-03-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人