Clojure 在mac下的安装、运行

1、文件下载

git clone https://github.com/clojure/clojure

2、文件的安装、配置

*   Clojure
 *   Copyright (c) Rich Hickey. All rights reserved.
 *   The use and distribution terms for this software are covered by the
 *   Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
 *   which can be found in the file epl-v10.html at the root of this distribution.
 *   By using this software in any fashion, you are agreeing to be bound by
 * 	 the terms of this license.
 *   You must not remove this notice, or any other, from this software.

Docs: http://clojure.org
Feedback: http://groups.google.com/group/clojure
Getting Started: http://dev.clojure.org/display/doc/Getting+Started

To run:  java -cp clojure-${VERSION}.jar clojure.main

To build locally with Ant:  

   One-time setup:    ./antsetup.sh
   To build:          ant

Maven 2 build instructions:

  To build:  mvn package 
  The built JARs will be in target/

  To build without testing:  mvn package -Dmaven.test.skip=true

  To build and install in local Maven repository:  mvn install

  To build a ZIP distribution:  mvn package -Pdistribution
  The built .zip will be in target/


--------------------------------------------------------------------------
This program uses the ASM bytecode engineering library which is distributed
with the following notice:

Copyright (c) 2000-2005 INRIA, France Telecom
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holders nor the names of its
   contributors may be used to endorse or promote products derived from
   this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.


3、我尝试了ant与./antsetup.sh 的方法,生成的都是class文件,最后采用无test的maven方法生成了jar文件

 mvn package -Dmaven.test.skip=true

生成三个文件:

clojure-1.7.0-master-SNAPSHOT-slim.jar
clojure-1.7.0-master-SNAPSHOT-sources.jar
clojure-1.7.0-master-SNAPSHOT.jar

4、运行命令如下

  java -cp clojure-1.7.0-master-SNAPSHOT.jar clojure.main


入门学习:

➜  target git:(master) java -cp clojure-1.7.0-master-SNAPSHOT.jar clojure.mainClojure 1.7.0-master-SNAPSHOT
user=> ;
user=> (+ 1 2 3)
6
user=> (javax.swing.JOptionPane/showMessageDialog nil "IT") 
nil
user=> (class 1)
java.lang.Long
user=> (class "")
java.lang.String
user=> (eval '(+ 1 2))
3
user=> (class [1 2 3])
clojure.lang.PersistentVector
user=> (range 4)
(0 1 2 3)
user=> (map inc [1 2 3])
(2 3 4)
user=> (reduce + [1 2 3 4])
10
user=> (fn hello-world (fn [] "Hello,world"))
CompilerException java.lang.IllegalArgumentException: Parameter declaration fn should be a vector, compiling:(NO_SOURCE_PATH:11:1) 
user=> (def hello-world (fn [] "hello,world"))
#'user/hello-world
user=> hello-world
#<user$hello_world user$hello_world@351672ae>
user=> (hello-world)
"hello,world"
user=> (defn hello [name]
CompilerException java.lang.RuntimeException: Unable to resolve symbol: (defn in this context, compiling:(NO_SOURCE_PATH:0:0) 
CompilerException java.lang.RuntimeException: Unable to resolve symbol: hello in this context, compiling:(NO_SOURCE_PATH:0:0) 
[#<core$name clojure.core$name@42593848>]
user=> (defn hello [name] \    
(str "hello" name)) \
#'user/hello
(hello "jim")
\newline
user=> "hellojim"
user=> (hello "li")
"helloli"
user=> (class {:a 1 :b 2})
clojure.lang.PersistentArrayMap
user=> (def stringmap(hash-map "a" 1, "b" 2,"c" 3))
#'user/stringmap
user=> stringmap
{"a" 1, "b" 2, "c" 3}
user=> (stringmap "a")
1
user=> (if false "a" "b")
"b"
user=> (let [a 1 b 2] 
(> a b))
false
user=> (do
(print "hello")
"world")
hello"world"
user=> (let [name "li"]
(print "saying hello to " name)
(str "hello" name))
saying hello to  li"helloli"
user=> (use '[clojure.set :only[intersection]])
nil
user=> (require 'clojure.string)
nil
user=> (import java.util.Date)
java.util.Date
user=> (ns test
(:import java.util.Date
java.util.Calendar))
nil
test=> (Date.)
#inst "2014-05-21T06:02:15.938-00:00"
test=> (.(Date.) getTime)
1400652147748
test=> (.getTime (Date.))
1400652160397
test=> %            


5、另外,跑完之后才发现,又专门的mac下安装配置clojure和leiningen的方法

https://gist.github.com/rakhmad/2407109

6、附加有一篇很简单上手的学习入门资料

http://www.oschina.net/translate/learn-clojure-in-minutes

http://clojure.org/getting_started


参考:http://blog.csdn.net/ithomer/article/details/17225813
官方文档: 

http://clojure.org/documentation 

中文资料(强烈推荐): 
1. clojure入门教程 
http://xumingming.sinaapp.com/302/clojure-functional-programming-for-the-jvm-clojure-tutorial/ 
2. clojure文档翻译 
http://code.google.com/p/clojure-doc-en2ch/w/list 
3. clojure手册(低版本) 
http://qiujj.com/static/clojure-handbook.html 
4. clojure中文社区: 
http://blog.clojure.cn/ 

5. Lisp中文社区: 
http://www.lispchina.com/

英文资料(强烈推荐): 
http://clojure-doc.org/articles/content.html 

clojure 开源工具: 
clojure工具箱汇总: 
http://www.clojure-toolbox.com/ 
ring server: 
https://github.com/ring-clojure/ring/wiki 
compojure: 
https://github.com/weavejester/compojure/wiki 
noir web框架: 
http://www.webnoir.org 
sandbar session框架: 
https://github.com/brentonashworth/sandbar/wiki 
clojureQL连接数据库: 
http://www.clojureql.org/ 
datomic数据库: 
http://www.datomic.com/ 
fleetdb数据库: 
http://fleetdb.org/ 
https://github.com/mmcgrana/fleetdb-client 
pdf处理: 
https://github.com/yogthos/clj-pdf 
csv处理: 
https://github.com/clojure/data.csv 
json库: 
https://github.com/dakrone/cheshire 
https://github.com/mmcgrana/clj-json 
mail库: 
https://github.com/clojurewerkz/mailer 
https://github.com/MayDaniel/clj-mail 
图形处理库: 
https://github.com/mikera/clisk 
https://github.com/ztellman/penumbra/wiki/Applications 
https://github.com/quil/quil 
音频处理库: 
https://github.com/overtone/overtone 
报表工具库: 
http://incanter.org/ 
定时任务框架: 
http://clojurequartz.info 
webservices 
http://clojure-liberator.github.com



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值