摘要:著名的 Lisp hacker – Zach Beane 为了教他十几岁的女儿学习 Lisp 编程,编写了一个入门教程,不过在我这个初学者眼里看来同样是值得一看的。 http://lisp.plasticki.com/
阅读全文
摘要:看了一个视频:http://video.google.com/videoplay?docid=448441135356213813 Peter Seibel (Pratical Common Lisp 的作者)做的关于 Common Lisp (CL) 的语言优势的一些介绍,比较有意思。 第一个例子中,首先他给出了 Java 中 Visitor 模式的一个典型的实现(C# 中也差不多),代码很...
阅读全文
摘要:09年的时候,有一阵子大家都在做网易的“有道难题”里面的双倍超立方数问题。我当时看到题目后也随手用 Python 做了一下,但当时那个解法是最笨的穷举法,所以除了练习了一次 Python 的基本语法之外,也没有什么特别的收获了。 最近又把 SICP 翻出来看到了流这一部分。在我发自内心的赞叹那些用流描述的数列在形式上是何等优美的同时,我想实际测量一下应用了这么多复杂的流的函数操作之后,程序的执行效率如何。而双倍超立方数正好是一个适合拿来练习的题目。 这次我用的开发环境是 DrRacket. 这个东西的前身其实叫做 DrScheme. 是 scheme 的一种开发环境,在 Windows 上..
阅读全文
摘要:一般语言由 primitives 组成, lisp 由 meta-primitives 组成。lisp 不定义 primitives. “Any time there is a primitive, there is a barrier, a non-orthogonality, in the design of the system.” let 用来创建 lexical scope. ...
阅读全文
摘要:经过最近试验用 EMacs 玩 Lisp 后,发现在 Windows 上使用各种坑爹:快捷键不符合 Windows 正常操作习惯(当然也可以用插件模拟,不过麻烦);点击菜单经常假死;切换 buffer 经常会假死;实在受不鸟了。重新切换回去用之前配置的 Eclipse + CUSP 插件,发现原来是没学会怎样使用——比如不知道怎样仅仅 Eval 一段选中的表达式。现在会了,重新用上了现代 IDE 各种爽。
阅读全文
摘要:1. 常规的命名参数: (defun f (a b) (+ a b)) (f 1 2)输出:32. 可选参数:(defun f (a b &optional c d) (list a b c d)) (f 1 2 3)输出:(1 2 3 NIL)未显示提供的参数,会以 NIL 值代替。可选参数可以指定默认值:(defun f (a b &optional (c "Hello") d) (...
阅读全文
摘要:首先按照http://www.ibm.com/developerworks/cn/opensource/os-eclipse-lispcusp/ 使用 Cusp Eclipse 插件开发 Lisp 应用程序 的介绍,安装了 Eclipse 和 Cusp 插件。 Eclipse 可以下载 zip 包直接解压在 D:\tools\eclipse\, 版本为: Eclipse SDK Version: ...
阅读全文