有关Lisp变体学习的任何建议吗?

def*_*efn 20 lisp scheme clojure

我最终想学习Clojure,但我发现Clojure的学习资源对于经验不足的人来说是稀缺的......

我想知道从Scheme(阅读Little SchemerSICP)或其他一些Lisp变体开始是否有益.

我唯一的编程经验是Java和Python(这是非常小的).我最终想在我的休息时间学习Clojure,因为我发现它非常吸引人,我的大学课程使用Java.

dno*_*len 15

Stuart Halloway的书是一个很好的资源,如果你刚刚开始.工作中有几本新书可以早期下载(Clojure的欢乐,Clojure in Action等).

此外,我强烈推荐邮件列表以及irc频道.特别是irc频道,那里有很多乐于助人的人,问题通常会很快回答.

虽然学习计划肯定是有帮助的(现在我已经和Clojure一起玩了一年),但我也会说这对于学习和玩Clojure来说是不必要的.

  • @defn,如果你选择Scheme我会建议SICP.请记住,Scheme对FP不是很严格,所以除非你考虑一下Scheme文本,否则这对你的Clojure没有帮助.不幸的是SICP很长(很有趣),所以它非常迂回.如果你想更快地掌握FP,请查看以下内容:http://www.cs.chalmers.se/~rjmh/Papers/whyfp.html我也一直在研究Haskell.Rich Hickey从那里采取了很多好主意,所以我也全心全意地推荐这个:http://learnyouahaskell.com/ (4认同)

Max*_*keh 9

我会选择Scheme.它简单,简约,极其一致,可以说它比LISP功能更强大(如果你想学习一个新的范例,这很好).我还发现Scheme IDE比LISP更加用户友好(PLT Scheme是一个很好的).

此外,Common Lisp或Scheme上有很多优秀的资源,所以这不应该是决定性的.

  • 我学习了Scheme后发现CL看起来很难看:) (2认同)

Car*_*icz 8

我是第二个dnolen建议抓住S. Halloway的书(我买了它,这很棒)并且立即学习Clojure.

我曾经(部分)通过SICP工作了一段时间,真的很挣扎.之后我发现Clojure非常简单,可能是因为我已经对Scheme有了一些经验.尽管如此,特别是对于已经熟悉Java的人来说,我会说直接进入Clojure很酷.理由:

  • 您可以方便地访问整个Java API以及为Java编写的整个库; 例如,我最近为Clojure程序构建了一个Swing GUI,并使用Apache HTTP组件进行了一些Web争论.
  • Clojure试图比其他Lisps更少"lispy":例如:
    • 减少"不必要的"括号:例如
      (cond (condition) (value) (condition) (value))而不是
      (cond ((condition) (value)) ((condition) (value)))
    • 在一些有意义的地方使用括号以外的东西; 例如,参数列表和letloop等的绑定在[方括号]而不是(括号)中.使函数定义更容易阅读恕我直言.
    • 列表不是唯一的数据结构.有很好的整合
      • [向量](随机可访问的数组)和
      • {包含HashMap};
        这些使生活更轻松,特别是如果您习惯使用Java.
  • 定义函数的功能是(defn).你们所有人都应该欣赏;)

值得推荐的第一个教程是Moxley Stratton的Clojure教程.还有一个关于Clojure教程的大量SO讨论产生了很多链接.

我在Clojure的第一步中发现的非常有帮助的东西是Clojure Cheat Sheet.这解决了您大致知道自己想要做什么但不知道要使用哪种功能的常见情况.人们希望其他语言采用这一概念.找到了一个可能满足您需求的函数,您可以(doc <name>)在Clojure REPL中使用它获得更多文档.

当然,您的里程可能会有所不同; 但是当亚马逊提供编程Clojure时,我已经从网上学到了足够多的Clojure,这本书更像是"大局"而不是教程.但是肯定比从那本书中学习Clojure编程要糟糕得多.


可能从上面可以看出我对Clojure充满热情.经过多年的Java,我发现它有点令人耳目一新,并且足以完成任何让我感到困扰的事情.我甚至捐赠给了这个项目:)

冒着后悔的风险,我还提供(免费)开始Clojure帮助和辅导,通过电子邮件,谷歌聊天或Wave.我的邮件地址应该很容易猜到.

  • 值得注意的是,Chris Houser和Fogus正在撰写一本专门解决人们在"Clojure中思考"的问题的书.它现在可以通过Manning Early Access Preview获得,并将在今年秋天的某个时候发布. (2认同)

Dem*_*nex 7

我从"Practical Common Lisp"一书开始,使用Emacs&SLIME和Steel Bank Common Lisp.