clojure 初试

来源:互联网 发布:淘宝卖假货封店 编辑:程序博客网 时间:2024/06/06 12:53

Twitter开源的著名的分布式并行计算框架Storm就是用Clojure编写的。
http server 例子:https://github.com/moonranger/clj.tr069

Datomic
http://jerrypeng.me/2015/05/26/talk-about-monitoring-again/

Leiningen for project automation package management and dependencies and is configured using Clojure syntax.
Maven integration

readers for: maps, sets, vectors, lists.
Lisp-1
macro: qualify symbols with namespace.
concurrent: software transactional memory, reactive system, channel-based

clojure download

clojure国内镜像下载

http://maven.ibiblio.org/maven2/org/clojure/clojure/1.9.0-alpha9/
http://maven.aliyun.com/nexus/content/groups/public/org/clojure/clojure

leiningen下载:

在~/.lein 目录下:

https://github.com/technomancy/leiningen/tree/master/bin/lein.bat 放到bin/

https://github.com/technomancy/leiningen/releases/download/2.7.1/leiningen-2.7.1-standalone.zip 重命名为
/self-installs/leiningen-2.7.1-standalone.jar

clojure repl

java -cp ~/tmp/clojure-1.9.0-alpha9.jar clojure.main(println (str "Hello, " \u4e16)) ; to the console(javax.swing.JOptionPane/showMessageDialog nil (str "Hello, " \u4e16 "!")) ; using Java GUI

leiningen repl

usage

lein new hellocd hellolein run -m hello.core/foo 123> 123 Hello, World!lein depslein testproject.clj 中加入 :main xx <==> -m xxlein repl> (require 'hello.core)> (hello.core/foo 123)lein trampoline run -m hello.core/foo 5000 ;省内存

emacs clojure repl

init.el(defvar my-packages '(better-defaults                      projectile                      clojure-mode                      cider))(dolist (p my-packages)  (unless (package-installed-p p)    (package-install p)))~/.lein/profiles.clj {:user {:plugins [[cider/cider-nrepl "0.8.1"]]}};;;M-x eval-buffer;;;M-x package-list-packages;;;start repl: M-x cider-jack-in;;;toggle menu: M-x menu-bar-mode

分发给终端用户使用

(defproject my-stuff ... :main my.stuff)src/my/stuff.clj(ns my.stuff (:gen-class))(defn -main [& args] (println "your args:" args))lein uberjarjava -jar my-stuff-standalone.jar are you ok

在线修改服务器

不重启开发服务器的情况下重载源文件 [3]

project.clj:plugins [[lein-ring "0.8.7"]]:ring {:handler your-app.core/handler}lein depslein ring server

todo

compojure-clojure
http://blog.csdn.net/lrq1988/article/details/12155119

destruct
http://blog.csdn.net/lrq1988/article/details/14120401

ref

[1] http://wiki.fnil.net/index.php?title=Leiningen%E6%95%99%E7%A8%8B%E4%B8%AD%E6%96%87%E7%89%88

[2] (http://wiki.fnil.net/index.php?title=Clojure%E5%B9%B6%E5%8F%91)

[3] https://github.com/ring-clojure/ring/wiki

[4] 速成教程 http://blog.csdn.net/ithomer/article/details/16807461
http://java.ociweb.com/mark/clojure/article.html#Macros

原创粉丝点击