一直想要学习一门Lisp方言,想了解被很多大牛推荐的函数式编程(FP),自己却不清楚要从哪开始。直到在图书馆无意中看到一本讲Clojure的书,好奇就借了随便翻翻,很巧的是同时顺手借的《七周七并发模型》里面也差不多有一半都是用Clojure举的例子,也算是缘分吧,就开始看Clojure。

Windows 环境下安装Clojure

1. Java环境

Clojure是运行在Java虚拟机(JVM,Java Virtual Machine)上的动态编程语言,想要运行Clojure,首先要确保正确安装Java,在命令行中,输入java -version,如果出现类似下面的内容,说明本机以及安装好了Java。

1
2
3
4
C:\Users\pfchai>java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b15, mixed mode)

否则,请先确保下载JDK安装JDK并检查环境变量是否配置正确。

2. 安装Clojure

在Clojure官方网站下载Clojure,解压到安装目录中即可。

3. REPL中运行clojure

在解压的Clojure目录中运行,即可进入REPL

1
2
3
java -cp clojure-1.8.0.jar clojure.main
Clojure 1.8.0
user=>

注意,将上述命令中clojure-1.8.0.jar改为Clojure解压目录中对应的jar文件。

1
2
3
user=> (+ 1 2 3)
6
user=> (javax.swing.JOptionPane/showMessageDialog nil "Hello World")

4. 安装Leiningen

Leiningen可以帮你建立、构建、测试、打包和部署Clojure工程。也就是说,它能为你提供工程管理方面的一站式服务。
Maven是一个流行的Java依赖关系管理工具,而Leiningen就相当于Clojure中的Maven。并且,Leiningen与Maven兼容,因此它可以毫无障碍地访问那些得到精心维护,存放着海量Java类库的存储中心。

Windows中安装Leiningen很简单,只需要

  1. 官方主页下载lein.bat;
  2. 将lein.bat放在PATH变量中任意目录中,保证可以直接在命令窗口中直接执行它;
  3. 在命令窗口运行lein,lein会自动下载安装包完成安装。

还有一种更简单的方式是下载二进制安装文件,像安装普通软件一样安装即可。

先在,可以用更简单的方式启动REPL

1
2
3
4
5
6
7
8
9
10
11
12
13
C:\Users\pfchai>lein repl
nREPL server started on port 63658 on host 127.0.0.1 - n
REPL-y 0.3.7, nREPL 0.2.12
Clojure 1.8.0
Java HotSpot(TM) 64-Bit Server VM 1.8.0_91-b15
Docs: (doc function-name-here)
(find-doc "part-of-name-here")
Source: (source function-name-here)
Javadoc: (javadoc java-object-or-class-here)
Exit: Control+D or (exit) or (quit)
Results: Stored in vars *1, *2, *3, an exception in *e

user=>

使用Leiningen创建一个Clojure项目:

1
lein new example

更多关于Leiningen的介绍,可以参考这个

5. 编写Clojure相关的IDE及插件

1. Eclipse

Counterclockwise插件

2. Emacs

clojure-mode - 提供Clojure编辑支持
nREPL - 提供用于网络REPL服务的Emacs客户端

3. Cursive

基于IntelliJ平台的IDE,可以在IntelliJ中安装Cursive插件

4. VimClojure

Vim的插件

5. Light Table

Light Table是由Microsoft Visual Studio部门项目经理Chris Granger离职后开发的全新理念的IDE,支持多种语言,比如Python、Clojure、JavaScript等。Light Table是一个很简单的概念:我们需要真正的工作面板,不只是编辑器和项目管理器。我们可以把东西尽量整洁地堆在这里,需要的时候可以把资料直接拿出来看。
Light Table的代码全部托管在GitHub上,遵循GNU开源许可。

Ubuntu 中安装Clojure

1. 安装Clojure

在Ubuntu中安装很简单,首先确保正确安装JDK。在shell中输入

1
sudo apt-get install clojure

即可。

2. 安装 Leiningen

  1. 下载lein script
  2. 将lein script放入$PATH中,如~/bin中;
  3. 给lein script增加可执行权限(chmod a+x ~/bin/lein
  4. 运行lein,将会自动下载安装依赖的文件