我开始学习方案乐趣,如果有人使用它为生活作为主要编程语言...甚至作为一个额外的工具,编程库不知道?如果是这样,你用它做什么?你通常用什么样的问题来解决它?
有很多人写Scheme谋生.他们是大学教授,但主要是编程语言领域 - 印第安纳大学有几个,如Kent Dybvig和Dan Friedman.他们用编程语言语义编写新想法(Dybvig也出售Scheme编译器).
这不是一个拥有大量付费客户的领域,因此技术上教授的薪水是因为他们在大学任职.但他们通过在编程语言中发布新想法获得了终身教职.
还有一些教授主张使用Scheme作为教学语言,如Matthias Felleisen和PLT Scheme背后的其他人.他们也写Scheme谋生.
Scheme非常适合尝试新的语言语义,因为它具有非常简单,强大的原语,统一的语法使您只能专注于语义.如果您正在设计一种新的编程语言,那么在Scheme中对其进行原型设计可能是有用的第一步.Scheme不会妨碍新想法,因为它包含了很少的新想法.
是的,有些人使用Scheme谋生.例如,蒙特利尔的Scheme程序员偶尔会有空缺(http://theschemeway.blogspot.com/2009/03/scheme-job-openings-at-gamerizon.html).在网站上搜索"工作"以获取更多计划工作.
根据我的经验,使用Scheme编程的人员占专业编程社区的不到0.1%,至少在蒙特利尔是这样.我见过用于嵌入式系统编程,高精度数值计算,网络编程,游戏脚本等的Scheme.
ITA Software(为Hotwired等提供机票搜索引擎的制造商/运营商)在Lisp中编写他们的产品.
此外,AutoCAD可以用Lisp编写脚本.
如果沃伦的回答没有让你知道,答案是否定的.实际上没有人靠计划谋生.(在我看来,保罗格雷厄姆的雅虎商店是证明这一规则的例外 - 你可以在Lisp中编写一个很棒的产品,但是格雷厄姆实际上是世界上唯一一个变得富有的人就是这样的原因.想想哈佛博士和令人难以置信的幸运时机.)
然而,现实世界中的人们正在以功能性编程为生.像Galois,Jane Street等公司专门研究函数式语言.一旦你学会了一种函数式语言(Scheme,OCaml,Haskell等),其他函数式语言就会更容易学习.
我认为问题的第二部分 - 方案非常适合解决的问题 - 很容易回答.Scheme是Turing-complete,这意味着它可以解决任何其他编程语言都可以解决的问题.它有一些漂亮的功能,甚至没有进入Common Lisp(尾部递归,特别是),但它也缺乏CL多年来获得的许多功能.
Yahoo!的原始版本 商店由Paul Graham在Common Lisp中撰写.他卖了很多钱.(更新:只有一件商店,感谢Laurence Gonsalves的详细评论.)
然而,它是现实世界中少数甚至是唯一众所周知的Lisp成功案例之一,并且出于某种原因,雅虎用C++重写了它.
有许多免费程序使用Lisp,但很少有人获得报酬,而这些并不是专门的Scheme.gEDA的是GNU电子设计自动化封装,是的(再次,少数)成功案例的狡诈,GNU的口齿不清扩展语言之一.
ELisp或Emacs lisp可能是最常部署的lisp系统.我不知道有多少emacs用户实际使用扩展语言.