随笔分类 -  common-lisp

摘要:最近一直在学习用cl-closure-template处理模版,发现一个问题,当把模版函数保存在一个文件中,使用文件路径编译时,模版函数中的中文字符变为乱码,这个是cl-closure-template读取文件时使用了系统默认编码方式导致的(alexandria:read-file-into-string obj),要解决此问题,可以在cl-closure-template模块的src/parser/command.lisp的函数parse-template中加入指定编码方式的语句(红色部分):(defun parse-template (obj) (closure-template-par. 阅读全文
posted @ 2014-02-16 22:13 误会僧 阅读(439) 评论(0) 推荐(0)
摘要:返回多值:(values 1 2 3) => 1 2 3 或: (gethash 'a x) => 100 T 都是多值返回的例子。多值的接收:如多接收函数多个值的返回呢?用multiple-value-bind:(multiple-value-bind (x y) (gethash 'a x) (if y (print "true") (print "err"))) =>true你可以通过multiple-value-call将多值应用到第二个函数上:(multiple-value-call#'+(values 阅读全文
posted @ 2013-10-22 16:35 误会僧 阅读(514) 评论(0) 推荐(0)
摘要:文件操作C-xC-f打开文件,出现提示时输入/username@host:filepath可编辑FTP文件C-xC-v打开一个文件,取代当前缓冲区C-xC-s保存文件C-xC-w存为新文件C-xi插入文件C-xC-q切换为只读或者读写模式C-xC-c退出Emacs编辑操作C-f前进一个字符C-b后退一个字符M-f前进一个字M-b后退一个字C-a移到行首C-e移到行尾M-a移到句首M-e移到句尾C-p后退一行C-n前进一行M-xgoto-line跳到指定行C-v向下翻页M-v向上翻页M-<缓冲区头部M->缓冲区尾部C-M-f向前匹配括号C-M-b向后匹配括号C-l当前行居中M-nor 阅读全文
posted @ 2013-04-10 17:53 误会僧 阅读(363) 评论(0) 推荐(0)
摘要:1.定义三根柱子,pillar-1 pillar-2 pillar-3, 每根柱子有自己的属性:name(柱子名称),value(柱子上的盘子),为了打印盘子的移动过程,我们给每根柱子定义了名称。(defparameter pillar-1 nil)(setf (getf pillar-1 'value) '(1 2 3 4)) (setf (getf pillar-1 'name) "pillar-1") (defparameter pillar-2 nil)(setf (getf pillar-2 'value) '()) (se 阅读全文
posted @ 2012-12-21 13:50 误会僧 阅读(319) 评论(0) 推荐(0)