84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
最近项目需要用到clojure 因为之前就是用clojure写的代码。但是我是java程序员,写java写的根深蒂固。完全不同于面向对象思想感觉学起来有些慢。o(︶︿︶)o 唉 求帮助啊。
学习是最好的投资!
学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 具有极好的互操作性。主要的困难在于从面向对象到函数式编程的两种编程方法的转换。从我自己的经验看,可以从这几个地方入手:
学的慢是好事情 长期来看反而可能是最快的掌握函数式编程的方式 如果你看了两小时就懂了。觉得反正语言么,就是变量赋值if loop函数等等等等,写法大同小异 那么很可能永远也学不会Java以外的语言了
前几天听了一个关于学习曲线的讲座,感觉还是挺有启发的:学习曲线与Hacking大脑
学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 具有极好的互操作性。主要的困难在于从面向对象到函数式编程的两种编程方法的转换。从我自己的经验看,可以从这几个地方入手:
学的慢是好事情
长期来看反而可能是最快的掌握函数式编程的方式
如果你看了两小时就懂了。觉得反正语言么,就是变量赋值if loop函数等等等等,写法大同小异
那么很可能永远也学不会Java以外的语言了
前几天听了一个关于学习曲线的讲座,感觉还是挺有启发的:
学习曲线与Hacking大脑