有人在那里使用Scheme编程语言吗?

我刚开始在我的大学学习计算机科学,在那里他们教我们在计划编程。

自从我在过去的6年中学习C ++以来,Scheme对我来说显得有些古怪。 我的老师告诉我,你可以编写任何你可以用C或Java编写的程序。

有人真的使用这种语言?

不是很多人使用我所知道的,但绝对值得一看(如果只是尝试用另一种模式进行编程,那么你学会以不同的方式思考)。 你很幸运能够参加使用Scheme的课程,因为现在大多数大学现在教Java。 如果你想看麻省理工学院的一些讲座,或者处理样本问题,这里有一个很好的链接。

MIT开放课件 – 计算机程序的结构和解释

还有一本免费的在线书籍(计算机程序的结构和解释)。

更新:

对于那些对使用JVM并且可以访问Java库(因为很多大学使用Java)的scheme感兴趣的用户,请查看Clojure 。 也许这将成为计算机科学入门的首选新语言(我们都希望!)。

美国广场用它来制作电影“ 最终幻想”

以下是他们发表的一篇论文: 将物联在一起 – 实时CG内容制作中的scheme 。

从这篇文章:

在2000年和2001年的SIGGRAPH上,我们美国广场研发团队实时呈现了全部电脑生成的电影“最终幻想:精神之魂”中的场景。

[…]

我们发现在实时渲染引擎中有embedded式的Scheme解释器是非常有帮助的。

计划会让你对编程有不同的想法。 只是尝试开放的思想!

“有人真的使用这种语言吗?”

保罗·格雷厄姆 ,着名。

JavaScript在很多方面与Scheme非常相似(尽pipe它缺lessScheme的延续性和高级数值系统)。

从“ ECMAScript语言概述 ”(PDF)。 2007-10-23。 pp。4.检索2009-05-03。

ES3是一个简单的,高度dynamic的,基于对象的语言,它的主要思想来自语言Self和Scheme。 编程风格是基于对象和函数式编程的混合:ES3中的主要抽象机制是词汇范围的高阶函数和可变对象…

我已经在生产计划代码的项目工作,它可以是非常酷的东西。 Scheme具有dynamic重新编译的这个很酷的特性来自我优化执行 。 我觉得就像天网一样。

我在大学里使用过,但自那以后我就没有用过。

如果你在recursion方面摇摇欲坠,我强烈build议学习Scheme或Lisp。 你将学会recursion地思考各种各样的事情。 recursion总是正确的路? 当然不是。 但是这是一个有用的工具,在工具箱中。

我总是鼓励开发者学习新的语言。 你学习和熟悉的语言越多,你会更加抽象地思考问题。 你被绑定到特定的语言越less,你就越有可能select最适合你的问题的语言。

目前,我正在通过Abelson和Sussman在1986年在Hewlett-Packard所做的SICP讲座以及 Brian Harvey (同一本书的教导) 给出的Cal-Berkeley CS61A播客以及随后的Scheme开发经验。全新的思考方式。 对于像我这样没有任何正规CS高等教育的人来说,我强烈build议…

除了个人经验之外,最接近客观猜测的是TIOBE指数 ,该指数目前以0.470%的市场份额排列LISP / Scheme 21。 TIOBE使用search引擎结果创build列表。 显然,你会想要拿一个盐的名单(和任何其他的计划使用猜测)。

无耻的宣传:检查PLT计划 。 他们已经创build了一个很好的社区,为许多平台提供他们的IDE,并为您提供一个不错的图书馆select。

以下是一个在商业应用程序中描述PLT计划的文章: http : //www.untyped.com/downloads/icfp068-welsh.pdf 。

Clojure是一种在JVM中工作的Scheme / Lisp类语言,并且对于并行处理(假定)非常有用。 使用Clojure的好处是可以访问整个Java API和其他Java库。

Clojure与Scala一起在语言极客中非常受欢迎。

在俄罗斯,我们使用PLTscheme开发软件。 它卖得好;)

所有的语言都可以用来写任何东西,付出足够的努力:)

然而,根据我的经验,Scheme很酷 – 知道Scheme会影响其他语言的编程。

Schememacros是非常强大的,而call-current-continuation是一个mindwarping函数。

经典testing是计算机程序的结构和解释(“SICP”)。 值得一读。

Java平台有相当多的scheme实现,它们被用于Java应用程序的脚本和原型。 scheme中存在基于inheritance的J2EEnetworking框架,称为SISCWeb 。

在一些GNU应用程序中,Guilescheme被用作脚本语言 – 例如GnuCash主要是用Scheme编写的。

另外TinyScheme被用作GIMP的脚本语言,它的一些变体被用在embedded式系统中。

爵士计划是一个build立在Gambit计划之上的开源计划环境,似乎积极推动工业用途,请查看:

爵士计划

他们报道新闻中的新用途:

爵士计划新闻

根据此页面,scheme在(DEC),TI,Tektronix,HP和Sun使用。

这家伙的LinkedIn简历报告在迪斯尼使用Chez计划。

只是search一下可以透露很多。 在这种情况下,我看到有一次我听说Scheme的使用非常普遍,只是不太公开。

绝对。 scheme适用于许多不同类别的问题。 吉姆·布兰迪(Jim Blandy)正在研究名为Minor的Scheme版本,该版本与本地系统更加紧密地结合在一起,意在提高性能。

我知道LilyPond使用Guile来实现可扩展性,但是我不知道我会把LilyPond作为软件的理想shiny的例子,因为它严重地影响了我的OS X的安装。

是! scheme很有意思。 我在滑铁卢大学的第一年就学过这门课。 起初有些不同,特别是如果你来自OOP /必要的背景。

它为你做了很多很好的事情,而function范式绝对是你应该探索的,如果只是获得不同的视angular。

这也是非常有用的,例如,我刚刚编译了一个C的超简化版本,我无法想象没有一个函数式语言(:

这些天我正在和IronScheme玩,但不知道谁使用计划的实际工作。

最近我听到了关于Reddit最初是用LISP编写的stackoverflow播客!

计划主要用于教学目的。 这是RSR6(有争议)之前还没有一个标准的模块系统的原因之一:在编写小作业作家庭作业时,需要大量的大型图书馆是不寻常的。

Scheme开始了一个为Lisp添加Smalltalk-like OOP的实验。 它最终改变了macros观系统,增加了call/cc (和dynamic-winddynamic-unwind ),并且增长了很多。

除了使用Guile作为脚本语言的GNU项目之外,我不知道使用Scheme的任何生产系统。 虽然我知道less数使用Lisp的生产系统( Orbitz在预订系统中有Lisp代码 )。

我已经学了2年多的计划,对程序员有很大的帮助。 它教会了我如何思考不同,理解编程语言之间更深层次的概念和联系。 事实上,你可以像在Java和C中一样在Scheme中编写任何程序,但这是相当困难的。 在可以解释为Java或C代码之前,必须进行一系列程序转换。 至less要学习基础知识是值得的。

我在我的程序devise课上学习,它有一些简洁的用法。 我只会用它来解决一个简单的问题。