我如何学习Scheme?

时间:2010-05-07 23:35:44

标签: lisp scheme

嘿,我是编程的新手。我已经选择了一些非常基本的Java(文件I / O,GUI,继承),并想看看函数式编程 - 特别是,我想学习Scheme。我在查找我能理解的Scheme实现时遇到了一些麻烦。口译员很奇怪;我不确定如何保存我的程序和创建可执行文件。我已经下载了PLT Scheme,但我更喜欢使用一些不那么居高临下的东西,类似于NetBeans。是否有插件或工具可以让我快速轻松地创建和管理Scheme程序?感谢所有帮助!

11 个答案:

答案 0 :(得分:16)

一些不错的链接

http://mitpress.mit.edu/sicp/

http://www.htdp.org/

两者都是课本。有关视频讲座的课程可在麻省理工学院开放式课件网站上找到。

http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/index.htm

答案 1 :(得分:13)

我希望在我16岁的时候就学会了Lisp。(我在那个年纪开始进行商业编程。)直到40岁才开始学习。我曾经失明,现在我可以看到了。 (好吧,无论如何,我可以看到前方几英寸。)

我认为其他人发布了关于学习Emacs的想法。

学习任何语言的一个好方法是在projecteuler.net上解决问题。

答案 2 :(得分:7)

试用本书The Little Schemer,它提供了一个非传统但易于学习的关于Scheme的教程,特别教你如何递归地“思考”,这对于理解Scheme(和其他函数式编程)是必不可少的语言)。

答案 3 :(得分:2)

SICP(计算机程序的结构和解释)肯定是一本好书,但没有必要对Scheme编程有一个很好的介绍。虽然在对Scheme有所了解后,建议阅读SICP。

学习使用Emacs作为编辑器会很有用。作为Scheme实现,我建议像CHICKENscheme这样的东西。其manual描述了如何部署程序。

替代方案是像JazzScheme这样的Scheme开发环境。

一本好学习计划书The Scheme Programming Language

答案 4 :(得分:2)

获取DrRacket(在任何平台上运行) 获取一本使用亚马逊“计划编程语言”的书,售价3.00美元,预订4.00美元 当您打开DrRacket打开时,请使用下拉菜单中的语言。

输入

方案

在脚本窗口的顶部,然后开始练习!

.....这就是我现在正在做的事情

答案 5 :(得分:1)

也许这不是最好的答案,但多年来我发现的事情之一就是许多新程序员被拉得太多了。如果你刚刚开始做你能做的最好的事情(我的意见)就是学好一种编程语言。如果可能的话,我会尝试将其作为您正在使用的语言,如果您不从事编程工作,那么我会尝试选择一种最有可能获得工作的语言。一旦你掌握了这一种语言,那么学习其他语言将有助于增强你已经扎实的基础,并帮助你成为一名优秀的程序员。

不要误会我的意思,学习计划是一件很棒的事情,但是在你掌握了一种语言之前,你将有更难的时间升级并获得完美的工作。最后,大多数公司都希望聘请大师,确保你在这个小组中。

答案 6 :(得分:1)

我认为plt-scheme的文档非常好http://docs.plt-scheme.org/值得一读

还有:编写代码,编写代码,编写代码

答案 7 :(得分:1)

Lisp的一个不错的初学者介绍是 Common Lisp First Contact

不是像上面提到的SICP这样的重量级课程,而是一个温和的介绍 在一个格式良好的PDF中的Common Lisp的语法,功能和奇怪 优化了屏幕阅读。

答案 8 :(得分:0)

我对这些工具帮不了多少。我尝试了麻省理工学院的实施并且也有点失落,但我想推荐一本书,它是一般的编程知识的一个很好的来源,并使用方案来说明想法。如果你还没有碰到过这个,你必须检查SICP

答案 9 :(得分:0)

我在大学里完成了一个完全用Scheme完成的编程语言课程,我们使用的教科书是Shriram Krishnamurthi的"Programming Languages: Application and Interpretation",他是帮助撰写DrScheme的人之一。该教科书可在线免费获取。当我试图理解Scheme的神秘神秘主义时,我发现这本书真的很有用并且内容丰富。

答案 10 :(得分:0)

如果Java环境已经适合您,那么最好的方法可能是使用在JVM之上运行的Scheme实现。出于教育目的,SISC绰绰有余:

http://sisc-scheme.org/

或者,您可以使用Kawa或Bigloo。

如果您正在学习功能性方法,而不一定要使用Scheme,那么Clojure可能是一个正确的选择。