Lisp
文章平均质量分 78
lambda_z
恶忌阴,善忌阳。故恶之显者祸浅,而隐者祸深;善之显者功小,而隐者功大。
展开
-
Common Lisp配置:SBCL
在FreeBSD及ArchLinux中, 我常使用SBCL。启动脚本:>cat ~/bin/sbbreakchars="(){}[],^%$#@\"\";:''|\\"cd /media/E/workexec rlwrap --remember -c -b "$breakchars" -f "$HOME"/.sbcl_completions -S 'λ> ' sbc原创 2012-01-11 10:35:14 · 7337 阅读 · 0 评论 -
Common Lisp开发的的窗口管理器stumpwm
用sawfish很久了,有点枯燥,就想试试其它窗口管理器。作为一个lisper自然就选择用Common Lisp开发的stumpwm了。stumpwm是一个minimalist窗口管理器,是由原Ratpoison的作者开发。(原来的stumpwm开发已不活跃,就fork一个:hacking用的stumpwm)用sbcl编译后个头有点大: (如果你在意磁盘文件大小, 可以不用编译,直接将下面这行原创 2012-02-19 12:24:26 · 7894 阅读 · 0 评论 -
神的编辑嚣emacs的简单配置
一个lisper不用emacs的确説不过去哈! 虽然使用vim很多年,但由于用stumpwm做窗口管理嚣很久,配置使用emacs也不太难。简单从网上搜集整理一些资料就可以正常使用了,现记下以后再完善。所有配置文件放在~/.emacs.d下。更新在github;;;;;;;;;;;;;;;;;;;;;;;;;;;;;$ cat ~/.emacs.d/init.el(a原创 2012-11-25 19:13:45 · 9013 阅读 · 0 评论 -
定制clojure的REPL
作为当今最主流的运算平台JVM,把函数式编程语言引入JVM也是很多人尝试的方向,Clojure就是其中之一。Clojure是一个在JVM平台运行的动态函数式编程语言,其语法于类似LISP语言,在JVM平台运行的时候,会被编译为JVM的字节码进行运算。 诞生于2007年的Clojure是JVM平台上的Lisp实现,Lisp 以强大的功能和表达性而著称,但应用范围存在着固定的局限,于是发起人原创 2011-09-21 16:13:03 · 1381 阅读 · 0 评论 -
Y combinator的简单理解
Y combinator本身是一个无状态函数,当用于另一个无状态的函数时,将返回该函数的递归版本。比如定义Y:(为了说明方便,用λi代替lambda关键字)(defun y (f) ((λ1 (x) (funcall x x)) (λ2 (y) (funcall f (λ3 (&rest args) (apply (原创 2012-09-17 13:38:15 · 5169 阅读 · 0 评论 -
使用hunchentoot-cgi有感
最近需要用hunchentoot跑一个以前用python开发的CGI程序,使用QuickLisp装好hunchentoot-cgi后发现hunchentoot-cgi在hunchentoot-1.2.2下不能正常运行! 在联系其作者Cyrus Harmon无结果的情况下,决定自己HACK(开放源码就是好哈)。虽然不熟悉hunchentoot, 但其代码量不大,而且weitz.de写的代码文原创 2012-01-31 11:33:07 · 3766 阅读 · 0 评论 -
告别人工智能之父、Lisp语言发明者John McCarthy
Lisp语言发明者、“人工智能之父”约翰·麦卡锡(John Maccarthy)于10月24日与世长辞,享年84岁。青少年时的约翰·麦卡锡聪慧过人,初中时他根据一份加州理工大学的课程目录自学完大学低年级微积分课程,也因此在1944年上大学时可以免修头两年大学数学,之后去普林斯顿大学研究生院继续深造。冯·诺依曼报告引发的好奇心约翰·麦卡锡的学术人生如何步入人工智能领域,还转载 2011-10-26 11:29:58 · 1814 阅读 · 0 评论 -
Common Lisp中的并发编程
Rob Pike谈到了Go语言中的并发编程,其主旨是在分开的轻量级进程中启动并发的任务,任务通过channel通信来同步。Common Lisp中的ChanL库提供了类似的功能,尽管我不知道其线程如何轻量,但其接口是相似的。使用channel简单有效的例子是并行执行一些IO相关的任务,比如取多个网页。开始前,先定义一个计时的宏:(defmacro time-it (&body翻译 2012-09-06 10:29:18 · 5695 阅读 · 1 评论 -
VIMer不用羡慕EMACSer了
学习使用Lisp当然是用emacs+slime, 但像偶这种已经深受VIM"毒害"的能不能拥有emacs那样的环境呢?答案是肯定的,因为有了slimv,可能功能没有slime强大,但也基本够用了。这里有一篇教程。目前偶使用最多的环境是:stumpwm(swank) + vim(slimv), 用VIM看Common Lisp代码时,只需要按就可以快速连上stumpwm中的swa原创 2012-03-06 11:11:15 · 3800 阅读 · 1 评论 -
试了下CommonLisp的WEB开发
很多人喜欢Rails这种“All in One"的方式, 不过个人更喜欢搭积木的方式。每个小系统专心做好自己的事, 然后大家合作产生具有更强大功能的系统。 从网上收集了一些样本代码, 用SBCL试了下, 感觉不错。>(ql:quickload "quickproject")>(quickproject:make-project "/media/E/RnD/clisp/web/":原创 2011-10-22 12:03:24 · 13119 阅读 · 4 评论 -
编译sawfish的配置文件
sawfish的配置文件本不需要编译, 但当文件较大时, 编译不仅能预先检查文件的正确性 , 而且还能提高启动速度.具体步骤如下:>cd ~/.sawfish>mv rc my-init.jl>sawfish --batch -lcompiler -f compile-batch my-init.jl如果没有什么错误, 则会生成 my-init.jl原创 2011-11-25 19:09:31 · 928 阅读 · 0 评论 -
为什么Lisp语言如此先进?
作者:Paul Graham一、如果我们把流行的编程语言,以这样的顺序排列:Java、Perl、Python、Ruby。你会发现,排在越后面的语言,越像Lisp。Python模仿Lisp,甚至把许多Lisp黑客认为属于设计错误的功能,也一起模仿了。至于Ruby,如果回转载 2011-10-10 13:29:56 · 1207 阅读 · 0 评论 -
Lisp的本质(The Nature of Lisp)
作者 Slava Akhmechet译者 Alec Jang简介最初在web的某些角落偶然看到有人赞美Lisp时, 我那时已经是一个颇有经验的程序员。在我的履历上, 掌握的语言范围相当广泛, 象C++, Java, C#主流语言等等都不在话下, 我觉得转载 2011-10-10 14:20:48 · 2471 阅读 · 1 评论 -
QuickLisp常用命令
QuickLisp作为Common Lisp的包管理嚣,給CL开发带来极大方便。记下常用命令以备忘。。升级quicklisp本身(ql:update-client)。更新系统(ql:update-dist "quicklisp")。查找系统(ql:system-apropos "vector")。装载/安装软件(ql:qu原创 2012-11-27 10:28:01 · 5844 阅读 · 1 评论