Clojure

来自开放百科 - 灰狐
(版本间的差异)
跳转到: 导航, 搜索
(语言)
(图集)
第248行: 第248行:
 
image:castra-rpc-for-clojure-architecture.png|Castra RPC
 
image:castra-rpc-for-clojure-architecture.png|Castra RPC
 
image:cursive-ide.png|Cursive IDE
 
image:cursive-ide.png|Cursive IDE
 +
image:clojure-tools.png|Tools
 
</gallery>
 
</gallery>
  

2020年3月19日 (四) 07:05的版本

Wikipedia-35x35.png 您可以在Wikipedia上了解到此条目的英文信息 Clojure Thanks, Wikipedia.

Clojure 是一个面向Java Virtual Machine 的动态语言。

Lisp 是一种编程语言,以表达性和功能强大著称,但人们通常认为它不太适合应用于一般情况。Clojure 是一种运行在 Java平台上的 Lisp 方言,它的出现彻底改变了这一现状。如今,在任何具备 Java 虚拟机的地方,您都可以利用 Lisp 的强大功能。

Clojure-logo.png

目录

简介

Clojure is about Data, Scala is about Types, Java is about Objects.

Eclipse Public License.

Why Clojure?

虚拟机编译器

  • ClojureCLR 基于 Microsoft Dynamic Language Runtime (DLR) 和.NET Common Language Runtime (CLR),C# 和 Clojure 编写。
  • ClojureScript

语言

Clojure开发的编程语言:

指南

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 REPL,它比 Clojure 自带的 REPL 好很多。

lein repl

Web应用启动:

lein run 或 lein ring server

Windows

clj on Windows

C:\huihoo\clojure>powershell -noprofile -executionpolicy bypass -file .\win-install-1.10.1.469.ps1

PS C:\huihoo\clojure> clj -h

PS C:\huihoo\clojure> clj -r

Clojure 1.10.1
user=>

Leiningen

使用leiningen工具来管理Clojure项目和Java配置。

brew install leiningen

或者获得 https://raw.github.com/technomancy/leiningen/preview/bin/lein 并放到 /bin 目录下,chmod 755

cd bin,执行 ./lein // 开始安装 Leiningen

lein help

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

插件

Leiningen Plugins

fn,def,defn

fn defdefn

fn 创建一个匿名函数,fn 和 lambda 类似。

user=> (map (fn [x] (* x x)))

def 可以将一个匿名函数绑定到一个name上。

user=> (def my-function (fn [x] (* x x )))

defn 是 def 与 fn 的简写。

user=> (defn my-function [x] (* x x))

Clojars

大数据

数据分析

数据分析和商业智能

机器学习

计算机视觉

自然语言处理

消息通信

事件CEP

  • EEP Embedded Event Processing in Clojure
  • Meltdown a Clojure Interface to Reactor

并行并发

金融货币

验证授权

数据库存储

SQL

PostgreSQL

MongoDB

Clojure Monger, Monger @ GitHub

Cassandra

  • cassaforte 建议:暂不使用高版本Cassandar,因为可能不支持。
  • alia: High performance Cassandra client for clojure
  • hayt: CQL3 DSL for Clojure

Redis

HBase

BI

Elasticsearch

Web HTTP

RESTful API

IDE和Editor

GUI

项目

文档

图书

用户

  • 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 框架或者队列进行通信。

更多用户>>>

图集

链接

分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱