以前听说过LISP函数式编程,也听人说Erlang的牛逼,接触了Clojure才知道,原来Clojure就是JVM中的Erlang。网上基于Ubuntu环境下开发Clojure的资料太少,在这里整理总结,分享给大家。

1. 安装Clojure

Clojure下载地址: download

Clojure托管源码: github

Cloure在Ubuntu下安装,只要简单的一条命令:   sudo apt-get install clojure

Clojure启动: clojure 或 /usr/bin/clojure  (Ctrl + D 退出)

可以手动的方式:Java -cp /opt/clojure-1.5.1/clojure-1.5.1.jar clojure.main           # /opt/clojure-1.5.1/ 是clojure 安装的目录

安装遇到问题,可以求助 clojure FAQ

然后输入clojure就可以进行clojure编程,例如:

示例1: 计算 1 + 2 +3

#clojure
Clojure 1.1.0
user=> (+ 1 2 3)
6

示例2:打印“IT-Homer”

user=> (javax.swing.JOptionPane/showMessageDialog nil "IT-Homer")

运行弹出结果:

2. 安装Eclipse Clojure插件

这里安装的插件是Counterclockwise,可以通过Eclipse自动安装软件的功能直接安装,具体如下:

Eclipse菜单Help->Install New Software->输入插件网址:http://ccw.cgrand.net/updatesite/,根据提示安装,重启Eclipse

安装好Counterclockwise插件后,可以新建Clojure工程和Clojure文件,使用方法和Java一样

3. 安装 Leiningen

Leiningen是专门针对Clojure的类似Maven的工具,手动安装方法可以通过 leiningen 上面的介绍

Ubuntu下一条命令安装:sudo apt-get install leiningen (此种方式仅安装 1.x版本,想安装最新的,需手动安装)

4. 安装leiningen针对eclipse的插件

这个插件可以通过读取project.clj 来自动建立eclipse的源码工程,之后你再通过eclipse的import exists project即可

命令:lein plugin install lein-eclipse 1.0.0

用法:

1)创建工程: lein new project_name

2)下载依赖:lein deps

3)生成eclipse工程: lein eclipse

示例:lein创建项目 test222

5. 导入clojure 到 eclipse

To import a Leiningen project into Eclipse, so that you can use CounterClockwise with all its nice features, such as syntax highlighting, there is a handy plugin called lein-eclipse .

To get started, all you have to do is to add this plugin as a dev-dependency in your project’s project.clj .

[python] view plaincopy print?
  1. (defproject my-project "1.0.0-SNAPSHOT"
  2. :description "My Clojure Leiningen Project"
  3. :dependencies [
  4. [org.clojure/clojure "1.2.0"]
  5. [org.clojure/clojure-contrib "1.2.0"]
  6. [ring/ring-jetty-adapter "0.2.5"]
  7. ]
  8. :dev-dependencies [
  9. [lein-eclipse "1.0.0"]
  10. ]
  11. )

Then, you need to download the project dependencies via

prompt> lein deps

This will automatically install lein-eclipse and add a new task called eclipse to leiningen . Invoking

prompt> lein eclipse

runs this task and creates the Eclipse projects files .project and .classpath . Now you can simply import the project into Eclipse via “File->Import->Existing Project into Workspace”.

参考推荐:

Clojure Quick Start

Clojure 官方

Clojure 源码(github)

Leiningen 官方

Leiningen 源码(github)

Window7下配置Clojure+Emacs

Clojure 学习入门(2)- eclipse 插件相关推荐

  1. Clojure 学习入门(6)- 函数定义

    一.创建函数:  fn: fn是一个宏,用于定义一个简单的函数,如下:  [python] view plaincopy print? user=> (fn [] "hello&quo ...

  2. Clojure 学习入门(6)—— 函数定义

    一.创建函数: fn: fn是一个宏,用于定义一个简单的函数,如下:  user=> (fn [] "hello") #<user$eval375$fn__376 us ...

  3. Clojure 学习入门(1) - 学习资料

    转自:http://blog.csdn.net/ithomer/article/details/17225813 Clojure(发音类似"closure",['kləʊʒə(r) ...

  4. Clojure 学习入门(13)- binding

    Clojure里面是不支持变量的.Binding跟变量有点像,但是在被赋值之前是不允许改的,包括:全局binding, 线程本地(thread local)binding, 以及函数内的本地bindi ...

  5. Clojure 学习入门(9)- 连接redis

    clojure 连接 Redis 示例 project.cli 添加redis依赖: [clj-redis "0.0.12"] [delphi] view plaincopy pr ...

  6. Clojure 学习入门(8)- 连接mongodb

    clojure 连接 mongodb示例 project.clj 文件添加monger依赖: [com.novemberain/monger "1.5.0"] [css] view ...

  7. Clojure 学习入门(7)- 连接mysql

    Clojure的contrib包中实现了对现有JDBC的封装,在wiki上有连接,该页面上包含了对不同的数据库的连接方法和基本的操作,但是这个页面上没有提供足够的信息,足够一个初学者能够使用Cloju ...

  8. Clojure 学习入门(8)—— 连接mongodb

    clojure 连接 mongodb示例 project.clj 文件添加monger依赖: [com.novemberain/monger "1.5.0"] (defprojec ...

  9. Clojure 学习入门(17)- 异常处理

    异常处理  Clojure代码里面抛出来的异常都是运行时异常.当然从Clojure代码里面调用的Java代码还是可能抛出那种需要检查的异常的. try - catch - finally 以及thro ...

最新文章

  1. 项目经理如何有效地进行项目沟通?
  2. JZOJ 4673. 4504. 5635. 【NOI2018模拟4.7】LCS
  3. Intellj(IDEA) warning no artifacts configured
  4. 图的建立-邻接矩阵表示(C语言)
  5. 在著名出版社出版书,你也行——记录我写书出版的经历和体会
  6. Google学术IP被锁--403
  7. viewer 获取当前显示的图片信息_通过这个 Runtime 统计信息可视化库学到了什么?...
  8. java源码-LinkedHashMap
  9. 【亲测】Ripro子主题美化C系列主题(春系列)-开源未加密
  10. glide 4.0 之后 和圆角裁剪CenterCrop冲突
  11. html5富文本编辑器菜鸟手册,富文本编辑器froalaEditor(全面)附教程
  12. 当显存不够时是否会调用共享GPU内存?
  13. 题目:离骚-原文和译文少了一行,你能写程序识别并找出来吗
  14. 技术人如何才能做好绩效管理提升团队绩效?
  15. 8.21. Pseudo-Types
  16. C语言经典编程282例01
  17. 使用饿了么update组件 实现多文件上传到后台以及本地图片显示功能
  18. 关于思科C2950交换机console清除密码,恢复初始配置的方法
  19. mysql expire_mysql expire_logs_days是怎么生效和计算出来的
  20. 1、开启ArcGIS 脚本学习之路

热门文章

  1. Linux 学习笔记 (四)Ubuntu14.04 解决上网问题安装无线网卡驱动
  2. iOS的一些小技巧[转]
  3. JavaScript学习笔记 1
  4. 学习linux—— 磁盘相关指令
  5. RHEL5中配置Sendmail邮件服务 收藏二
  6. C#实现用Enter键和Tab键同样功能
  7. linux svn官网,linux svn
  8. 使用FastReport 3.0及以上版本创建动态报表的几个技巧(转)
  9. 内存泄漏的原因及解决办法_浅谈 JS 内存泄漏问题
  10. Javascript第六章计时器练习【源码】第四课