def*_*efn 20 lisp scheme clojure
我最终想学习Clojure,但我发现Clojure的学习资源对于经验不足的人来说是稀缺的......
我想知道从Scheme(阅读Little Schemer和SICP)或其他一些Lisp变体开始是否有益.
我唯一的编程经验是Java和Python(这是非常小的).我最终想在我的休息时间学习Clojure,因为我发现它非常吸引人,我的大学课程使用Java.
dno*_*len 15
Stuart Halloway的书是一个很好的资源,如果你刚刚开始.工作中有几本新书可以早期下载(Clojure的欢乐,Clojure in Action等).
此外,我强烈推荐邮件列表以及irc频道.特别是irc频道,那里有很多乐于助人的人,问题通常会很快回答.
虽然学习计划肯定是有帮助的(现在我已经和Clojure一起玩了一年),但我也会说这对于学习和玩Clojure来说是不必要的.
我会选择Scheme.它简单,简约,极其一致,可以说它比LISP功能更强大(如果你想学习一个新的范例,这很好).我还发现Scheme IDE比LISP更加用户友好(PLT Scheme是一个很好的).
此外,Common Lisp或Scheme上有很多优秀的资源,所以这不应该是决定性的.
我是第二个dnolen建议抓住S. Halloway的书(我买了它,这很棒)并且立即学习Clojure.
我曾经(部分)通过SICP工作了一段时间,真的很挣扎.之后我发现Clojure非常简单,可能是因为我已经对Scheme有了一些经验.尽管如此,特别是对于已经熟悉Java的人来说,我会说直接进入Clojure很酷.理由:
(cond (condition) (value) (condition) (value))而不是(cond ((condition) (value)) ((condition) (value)))let和loop等的绑定在[方括号]而不是(括号)中.使函数定义更容易阅读恕我直言.(defn).你们所有人都应该欣赏;)值得推荐的第一个教程是Moxley Stratton的Clojure教程.还有一个关于Clojure教程的大量SO讨论产生了很多链接.
我在Clojure的第一步中发现的非常有帮助的东西是Clojure Cheat Sheet.这解决了您大致知道自己想要做什么但不知道要使用哪种功能的常见情况.人们希望其他语言采用这一概念.找到了一个可能满足您需求的函数,您可以(doc <name>)在Clojure REPL中使用它获得更多文档.
当然,您的里程可能会有所不同; 但是当亚马逊提供编程Clojure时,我已经从网上学到了足够多的Clojure,这本书更像是"大局"而不是教程.但是肯定比从那本书中学习Clojure编程要糟糕得多.
可能从上面可以看出我对Clojure充满热情.经过多年的Java,我发现它有点令人耳目一新,并且足以完成任何让我感到困扰的事情.我甚至捐赠给了这个项目:)
冒着后悔的风险,我还提供(免费)开始Clojure帮助和辅导,通过电子邮件,谷歌聊天或Wave.我的邮件地址应该很容易猜到.