您将使用哪种语言进行SICP的自学?

Ala*_*lan 32 lisp scheme functional-programming clojure sicp

我抓住了学习函数式编程的bug.所以我的下一个自学项目是通过计算机程序结构和解释.不幸的是,我从未学过Lisp,因为我不是大学的CS专业.

虽然SICP并不强调编程工具,但是练习需要选择一种类似Lisp的语言.似乎Scheme的一些实现将是阻力最小的路径.另一方面,我听说有人使用过Common LispClojure.在我看来,Common Lisp或Clojure更有可能在生产代码中使用,因此我的简历稍微好一点.顺便说一下,我完全认为学习语言本身就是值得的,但学习一种帮助我简历的语言仍然是一个好处.我是资本家,也是关于我学习的学者.

如果你不得不自学SICP,你会选择哪种语言?为什么?理想情况下,我想使用可以在JVM上运行的语言.我当然可以使用REPL与bash和emacs一起工作的语言.

附加:有没有人试过不使用Scheme阅读SICP?如果是这样,你的经历是什么样的?

And*_*isi 40

使用Scheme.它是现存最简单,最简单的语言之一,您将花费很少的时间学习它以理解SICP.一旦了解了SICP,您将看到这些概念如何适用于任何语言.


Cla*_*diu 22

使用DrScheme.正如其他人所说,Scheme是一种简单的语言,DrScheme是一个很好的使用它的环境,其中有很多支持和中等到良好的文档.

  • Alan,不要忘记使用PLaneT提供的SICP支持(PLT Scheme/DrScheme的用户贡献的库).http://planet.plt-scheme.org/package-source/neil/sicp.plt/1/13/planet-docs/sicp/index.html (4认同)
  • DrScheme现在被称为DrRacket http://en.wikipedia.org/wiki/DrRacket (3认同)

Dre*_*kes 9

不是直接的答案,但我希望这些信息对于通过SICP工作的任何人都有用.请务必查看以下视频:

http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/

每集有20集,每集一小时.他们于1986年由Abelson和Sussman为Hewlett Packard员工颁发.我把它们放在我的iPod上并在通勤时观看它们.迷人.

此外,该书的全文可在http://mitpress.mit.edu/sicp/在线获取.


Jon*_*ell 5

作为一个雇人的人,我会告诉你,简历上有Scheme是一件好事。在你的简历上有 Scheme、SML、Ocaml 或 Haskell 表明你是一个非常全面的程序员,而且是一个思想家。

也就是说,如果你正在尝试函数式编程,为什么不用 Haskell 呢?Scheme 是多范式的,它可以是面向对象的、函数式的、基于流的,或者其他任何东西。这使得尝试新的编程风格和范式变得很棒,但如果您的目标是严格的功能性,则可能会出现问题。(您最终将编写非功能性代码而没有意识到它。)