clojure/lisp
葑岚
网络广告的精准推荐,海量数据的分布式计算http://weibo.com/larryspace
展开
-
使用Clojure DSL来写storm
storm 提供一套Clojure DSL来定义spouts,bolts,和topologies。因为Clojure DSL可以调用所有暴露在外的java api,所以如果你是一个clojure开发者,你不用接触java代码就可以编写storm topologys。定义Clojure DSL的代码在backtype.storm.clojure 命名空间下.本文概述了使用Clojure DS翻译 2012-02-27 19:18:10 · 4917 阅读 · 3 评论 -
Leiningen安装使用及与eclipse的集成
Leiningen是针对Clojure的项目构建工具,兼容Maven。@ https://github.com/technomancy/leiningen安装Counterclockwise:Clojure的eclipse插件,@http://code.google.com/p/counterclockwise/Update site: http://ccw.cgrand.ne原创 2012-02-08 19:01:05 · 3567 阅读 · 1 评论 -
什么是clojure的副作用(side effect)
什么是clojure的副作用(side effect): 纯函数(Pure Function):输入输出数据流全是显式(Explicit)的。函数与外界交换数据只有参数和返回值。隐式(Implicit)函数:函数可以通过参数和返回值以外的方式和外界交换数据。eg:修改全局变量,利用I/O读取/输出到文件文件,打印到屏幕等等借用一个例子,比如open是打开文件的函数,它打开一原创 2012-03-09 14:53:26 · 1866 阅读 · 0 评论 -
高并发除了java还可以用什么-clojure,go,rust
java的锁和CAS都是开销惊人的(锁会调用本地系统进行线程阻塞和唤醒开销巨大).Actor的消息队列也会有自己的严重问题(使用Actor又会使得编程复杂度大大提高).所以分布式开发其实是按照业务特性,妥协出最优方案. 在写少读多的并发场景下:clojure的STM,通过多版本控制以空间换时间,提供了类似MVCC的内存事务回滚, ,简单高效到了极致.大量写的情况下go/原创 2012-03-09 15:38:21 · 3650 阅读 · 1 评论 -
storm分配topology的关键代码注释
numbusread-storm-config;读取storm配置launch-server!-->validate-distributed-mode!验证是否是集群模式check-storm-active!检查storm状态是否存活(swap! (:submitted-count nimbus) inc)通过swap!方式将nimbus的提交数加一 storm-name+原创 2012-02-17 16:01:38 · 1954 阅读 · 0 评论 -
深入了解lisp(clojure)-变量
本文由larrylgq编写,转载请注明出处:http://blog.csdn.net/larrylgq/article/details/7395261作者:吕桂强邮箱:larry.lv.word@gmail.comclojure中变量可以分为词法变量(lexical)和动态变量(dynamic),有点类似于其它语言中的局部变量和全局变量。一个变量是一个不需要声明保存类型的可以保原创 2012-02-29 20:45:08 · 2518 阅读 · 0 评论 -
深入了解lisp(clojure)-宏
本文由larrylgq编写,转载请注明出处:http://blog.csdn.net/larrylgq/article/details/7395261作者:吕桂强邮箱:larry.lv.word@gmail.comlisp使用特殊操作符来扩展语法,但是在lisp中特殊操作符的数量是固定的,为了解决这个问题lisp引入了宏,宏并不直接做事,而是生成实际的业务代码。宏的求值原创 2012-03-02 19:47:22 · 2571 阅读 · 0 评论 -
clojure写的银行系统的小例子
;银行(defstruct account-struct :id :owner :balance-ref);帐号维度(def account-map-ref (ref (sorted-map)));保存所有帐号的集合;新开一个帐号;@args: 帐号id;@return:帐号信息(defn open-account "creates a new account, stores i原创 2012-01-16 18:19:57 · 1586 阅读 · 1 评论 -
clojure中类型暗示
很多开源代码中(eg:storm)都会出现这样的代码eg:(^voiduploadChunk[this^Stringlocation ^ByteBufferchunk] (let[uploaders (:uploaders nimbus) ^WritableByteChannelchannel(.getuploaders原创 2012-02-06 14:34:31 · 746 阅读 · 0 评论 -
hadoop与storm的一点区别
本文由larrylgq编写,转载请注明出处:http://blog.csdn.net/larrylgq/article/details/7326058作者:吕桂强邮箱:larry.lv.word@gmail.comhadoop是实现了mapreduce的思想,将数据切片计算来处理大量的离线数据数据。hadoop处理的数据必须是已经存放在hdfs上或者类似hbase的数据库中原创 2012-03-06 19:26:55 · 10567 阅读 · 2 评论