为一个lisp文盲的Clojure

dby*_*rne 32 lisp functional-programming clojure

我是一个终身面向对象的程序员.我的工作主要是java开发,但我有多种语言的经验.Ruby给了我第一次真正的函数式编程.我喜欢Ruby从功能范例中借用的功能,例如闭包和延续.最终,我毕业于斯卡拉.这是逐步学习以功能性方式处理非平凡问题的好方法.

现在我对Clojure很感兴趣.我知道所有诱人的性感功能(软件事务内存,宏等),但我不能习惯"在lisp中思考".我见过Rich Hickey针对java程序员的截屏视频,但它们主要用于解释语言功能而不是解决现实问题.

我正在寻找任何建议或资源,使其他人更容易过渡.

dby*_*rne 19

在我最初提出这个问题之后的11个月里.我刚刚开始了一个新项目,帮助初学者过渡到clojure.它被称为4clojure,它挑战你解决填空式交互式问题.

  • 哇!这是一个史诗般的帖子,也是学习一些东西的好例子,考虑到成功4clojure一直是clojure初学者和大师.好样的! (3认同)

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!


Isa*_*aac 8

从OOP直接进入Clojure,我只推荐Stuart Halloway 的优秀编程Clojure.

我喜欢它,并且在这个过程中它覆盖了很多Clojure以及相当多的功能编程.

Little Schemer和SICP​​很棒,但如果你想要学习它们,它们对Clojure来说就不那么重要了.


Ray*_*yne 5

我建议获得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,结构将变得过时.