最近项目需要用到clojure 因为之前就是用clojure写的代码。但是我是java程序员,写java写的根深蒂固。完全不同于面向对象思想感觉学起来有些慢。o(︶︿︶)o 唉 求帮助啊。
最近项目需要用到clojure 因为之前就是用clojure写的代码。但是我是java程序员,写java写的根深蒂固。完全不同于面向对象思想感觉学起来有些慢。o(︶︿︶)o 唉 求帮助啊。
从 Java 转写 Clojure 还是比较容易的。毕竟 Clojure 是基于 JVM 的语言,与 Java 具有极好的互操作性。主要的困难在于从面向对象到函数式编程的两种编程方法的转换。从我自己的经验看,可以从这几个地方入手:
学的慢是好事情
长期来看反而可能是最快的掌握函数式编程的方式
如果你看了两小时就懂了。觉得反正语言么,就是变量赋值if loop函数等等等等,写法大同小异
那么很可能永远也学不会Java以外的语言了
前几天听了一个关于学习曲线的讲座,感觉还是挺有启发的:
学习曲线与Hacking大脑
3 回答2.2k 阅读✓ 已解决
3 回答3.7k 阅读✓ 已解决
8 回答2.9k 阅读
4 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
1 回答1.9k 阅读✓ 已解决
学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,写代码,运行,该代码,运行。。。。