java程序员学习clojure函数式语言有什么好的快的方式吗

最近项目需要用到clojure 因为之前就是用clojure写的代码。但是我是java程序员,写java写的根深蒂固。完全不同于面向对象思想感觉学起来有些慢。o(︶︿︶)o 唉 求帮助啊。

阅读 4.1k
3 个回答

学Clojure是个先难后易的过程。
比较难的地方有:
1. 就是Lisp风格代码的习惯性问题,这个看个人习惯了
2. OO思想主张的是行为和状态的封装,也就是一个对象既包含了行为(方法)也包含了状态(属性),行为是操作特定对象的状态的。而对于Clojure来说,则是一种函数操作多种数据(例如:rest函数可以操作多种数据类型),一开始会感觉像OO所反对的属性和方法分离。还有就是OO设计,以对象为基础,而函数式则以数据结构为基础。
3. 代码即数据,这个应该都听过,网上各种大神推荐。可以先当作宏是在javac的时候,函数是java的时候。。。。这个属中后期学习,前期函数基本都可以搞定。
熟悉Java的人来说,学Clojure不是太难:
1. IDE首推Intellij IDEA+Cursive,如果习惯IDEA的,操作和写Java没差
2. 书籍推荐Clojure编程,Clojure程序设计翻译不怎么样
3. 就是多写写,REPL运行调试很爽的,不像Java,写代码,运行,该代码,运行。。。。

从 Java 转写 Clojure 还是比较容易的。毕竟 Clojure 是基于 JVM 的语言,与 Java 具有极好的互操作性。主要的困难在于从面向对象到函数式编程的两种编程方法的转换。从我自己的经验看,可以从这几个地方入手:

  • 有一个良好的 IDE。过去 Clojure 的 IDE 不多,很多程序员需要同时学习 Emacs 和函数编程,这让学习任务陡峭很多。但幸好这个状况已经改善很多:基于 IntelliJ IDEA 的 CursiveClojure 插件博客介绍),或基于 Eclipse 的 CCW 插件
  • 有一本好书。Java 程序员初转最好的入门书是《Clojure 程序设计》。
  • 做一些练习。4clojure.com 是极好的迅速练习的站点。

学的慢是好事情
长期来看反而可能是最快的掌握函数式编程的方式
如果你看了两小时就懂了。觉得反正语言么,就是变量赋值if loop函数等等等等,写法大同小异
那么很可能永远也学不会Java以外的语言了

前几天听了一个关于学习曲线的讲座,感觉还是挺有启发的:
学习曲线与Hacking大脑

推荐问题
宣传栏