dby*_*rne 32 lisp functional-programming clojure
我是一个终身面向对象的程序员.我的工作主要是java开发,但我有多种语言的经验.Ruby给了我第一次真正的函数式编程.我喜欢Ruby从功能范例中借用的功能,例如闭包和延续.最终,我毕业于斯卡拉.这是逐步学习以功能性方式处理非平凡问题的好方法.
现在我对Clojure很感兴趣.我知道所有诱人的性感功能(软件事务内存,宏等),但我不能习惯"在lisp中思考".我见过Rich Hickey针对java程序员的截屏视频,但它们主要用于解释语言功能而不是解决现实问题.
我正在寻找任何建议或资源,使其他人更容易过渡.
dby*_*rne 19
在我最初提出这个问题之后的11个月里.我刚刚开始了一个新项目,帮助初学者过渡到clojure.它被称为4clojure,它挑战你解决填空式交互式问题.
Mic*_*ent 14
我对Lisp的第一次介绍是:Peter Norvig的人工智能编程范式.它是对Common Lisp和函数式编程概念的许多功能的一个非常可读和温和的介绍.
直接从一些Clojure书籍开始对你来说可能更合适,因为Common Lisp和Clojure之间存在一些差异,如果你想要同时学习两者,这可能会让人感到困惑.
同时,尝试亲身体验Clojure REPL,做一些像Project Euler这样的练习,然后可以与其他Clojure和命令式Java解决方案进行对比.
此外,如果您对Clojure编程和惯用语有任何疑问,请不要犹豫与其他Clojurians讨论您的代码.有几个选项可以做到这一点,例如:Google Groups上的Clojure,Freenode上的#clojure IRC频道,Twitter上的#title标签#clojure,当然还有Stackoverflow!
我建议获得MEO版的The Clojure.我有它,现在MEAP共提供12章.到目前为止,它是迄今为止我读过的关于编程语言的最好的书.这12章很容易让你开始使用Clojure,一直到一些高级主题.当前的MEAP(经常用新章节获得更新)结合ociweb Clojure教程,stackoverflow.com和freenode上的#clojure IRC频道,我想你会没事的.
虽然我同意编程Clojure是对Clojure的一个很好的介绍,并且做得非常好,但我们不能否认它每周都会越来越过时.你必须记住,编程Clojure是为Clojure 1.0编写的.现在,我们正在快速接近Clojure 1.2的发布.例如,通过包含defrecord,结构将变得过时.