最近要跟函数式语言干一仗!
本来打算先征服 ML(meta language)的,结果可耻地失败了,并且归结为译者水平太低。
然后拿了本《Lisp 语言》回来看,语言很平实,的确比较适合我,可惜作者马希文教授已经作古了,天妒英才啊。
但是看完表之后还是卡住了,思维的转变的确不是一朝一夕的事。不过马教授比 ML 作者出色的地方,是开卷即讲述 s 表达式的概念,教你分清原子与 s 表达式。然后介绍简写法,流畅地引入了表的概念。而且表的描述非常生动(没有右支是非 nil 原子结束的 s 表达式),接下来的 append、car、cdr 都很入神了。
下面讲讲配置的经过吧:
lisp 其实主要是一个技术标准,具体实现的时候允许不同版本之间的合理歧义。我选择的方言(即 lisp 的具体实现)是 clisp,主要是因为它受众面比较广一点。
刚刚配置的时候是采用 cgywin 升级安装 clisp 的,大约 16MB。安装完之后,发现输入 clisp 出现了一个类似 shell 的对话式交互,解释执行的意思吧。
后来采用 vim 配合的方法,先把函数定义写入文本文件,然后再在 lisp 中编译。不过好像没有语法高亮,而且运行的时候刷的一声就过去了。不清楚是否有 main 方法可以调用自己的函数进行测试。
最后,选择了 lispbox 作为配合的 IDE。lispbox 带有 slime,却一点都不 slime 要 26MB 多,安装完成后就可以得到一个分割窗口,上部显示跟 clisp 的交互,下部显示错误信息。需要注意的是,不要选择带有空格的路径进行安装。
Emacs 的快捷键很多,可我是 vimer,再记一套快捷键有点记忆负担啊,现在最常用的是 M-p(m 表示 meta,是 alt 键的意思,这是 Emacs 继承下来的快捷键表示法),键入上一条。