欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
Clojure
来自开放百科 - 灰狐
您可以在Wikipedia上了解到此条目的英文信息 Clojure Thanks, Wikipedia. |
Clojure 是一个面向Java Virtual Machine 的动态语言。
Lisp 是一种编程语言,以表达性和功能强大著称,但人们通常认为它不太适合应用于一般情况。Clojure 是一种运行在 Java平台上的 Lisp 方言,它的出现彻底改变了这一现状。如今,在任何具备 Java 虚拟机的地方,您都可以利用 Lisp 的强大功能。
目录 |
指南
wget http://repo1.maven.org/maven2/org/clojure/clojure/1.8.0/clojure-1.8.0.zip java -cp clojure-1.8.0.jar clojure.main user=> (+ 1 2 3) 6 user=> (def hello (fn [] "Hello world")) #'user/hello user=> (hello) "Hello world"
Leiningen
使用leiningen工具来管理Clojure项目和Java配置。
brew install leiningen
或者获得 https://raw.github.com/technomancy/leiningen/preview/bin/lein 并放到 /bin 目录下,chmod 755
cd bin,执行 ./lein // 开始安装 Leiningen
Leiningen is a tool for working with Clojure projects.
Several tasks are available:
check Check syntax and warn on reflection. classpath Write the classpath of the current project to output-file. clean Remove all files from project's target-path. compile Compile Clojure source into .class files. deploy Build jar and deploy to remote repository. deps Show details about dependencies. do Higher-order task to perform other tasks in succession. help Display a list of tasks or help for a given task. install Install current project to the local repository. jar Package up all the project's files into a jar file. javac Compile Java source files. new Generate project scaffolding based on a template. plugin DEPRECATED. Please use the :user profile instead. pom Write a pom.xml file to disk for Maven interoperability. repl Start a repl session either with the current project or standalone. retest Run only the test namespaces which failed last time around. run Run the project's -main function. search Search remote maven repositories for matching jars. show-profiles List all available profiles or display one if given an argument. test Run the project's tests. trampoline Run a task without nesting the project's JVM inside Leiningen's. uberjar Package up the project files and all dependencies into a jar file. upgrade Upgrade Leiningen to specified version or latest stable. version Print version for Leiningen and the current JVM. with-profile Apply the given task with the profile(s) specified.
Run lein help $TASK for details.
接着:
lein new start-clojure cd start-clojure lein repl 将获得一些jar,如: Retrieving org/clojure/clojure/1.4.0/clojure-1.4.0.jar ... user=> (println "Give me some Clojure!") Give me some Clojure! nil
Clojars
- Clojars: Clojure libraries
- Third-party templates
大数据
- Cascalog, 基于Apache Hadoop的数据处理。
- Onyx
机器学习
计算机视觉
自然语言处理
数据库
- Clojure libraries for MongoDB, RabbitMQ, validations, Neo4J, ElasticSearch, Apache Cassandra, Riak, Memcached, stream processing
- hikari-cp 连接池
SQL
PostgreSQL
MongoDB
Clojure Monger, Monger @ GitHub
Cassandra
HBase
BI
HTTP
RESTful API
- compojure-api with Compojure & Swagger
- liberator
IDE
项目
- Apache Storm
- core.async Go式轻量级线程,⻓得像同步的异步.
- tryclojure
- ClojureScript
- incanter
- Ring
- Boot: Build tooling for Clojure
- cljsjs
- alda 音乐编程语言
文档
图书
用户
- Cognitect, Clojue之父,Rich Hickey 是该公司Co-Founder & CTO。
- 花旗信⽤实时⻛险估值系统Java/Clojure后端(1500节点分布计算)花旗投⾏信⽤部实时⻛险计算系统,逻辑使⽤Clojure。
- Puppet: Puppet Server, Trapperkeeper, PuppetDB, Trapperkeeper Webserver Service
- 沃尔玛: “Our Clojure system just handled its first Walmart black Friday and came out without a scratch.” - Walmart Labs
- Riemann
- LeanCloud 采用了多种语言混合来构建整个后端系统,包括 Clojure、Java、Node.js、Scala 等。其中 Clojure 构建了整个网站门户、存储开放 API、推送、聊天等核心服务,Node.js构建了云端代码服务(类似应用代码托管),我们还使用 Scala 编写的 Spark 任务来处理离线数据分析,此外,还有大量的统计类 MapReduce 任务使用 Java 编写并运行在 Hadoop 集群上。不同服务之间使用 RESTful 协议、RPC 框架或者队列进行通信。
图集
链接
- Clojure官网
- Clojure @ GitHub
- Clojure Handbook
- Clojure Blog
- Planet Clojure
- Awesome Clojure
- Clojars
- The Clojure Toolbox
- ClojureDocs
- Clojure API 中文文档, Clojure API 文档的中文计划
- CrossClj: cross-referencing the Clojure ecosystem
- 4Clojure, 4clojure @ github
- A Brief Beginner's Guide To Clojure
- Data Sorcery with Clojure
- http://groups.google.com/group/clojure
- Clojure 语言的设计
- Clojure 编程语言
- FlightCaster秘笈——Clojure和Rails
- ClojureScript通过Javascript将Clojure引入到浏览器端
- Java 下一代: Groovy、Scala 和 Clojure
- 研究指出:Clojure、CoffeeScript和Haskell是表现力最强的通用语言
分享您的观点