新的功能语言

时间:2009-06-23 08:53:06

标签: functional-programming

函数式编程至少从1958年开始(Lisp的创建),但现在正在经历复兴,旧的函数式语言被拂去,新的函数式语言被创建。

新开发或正在制作哪些功能语言?

我意识到你可以用大多数高级语言编写纯函数式程序,所以对于函数式语言,我暗示专门为函数式编程设计的语言,如F#。

如果您有教程,维基或代码示例的链接,我建议您将它们添加到您的答案中!

9 个答案:

答案 0 :(得分:16)

这是我到目前为止测试过的一个简短列表(除了F#,你已经提到过了):

  1. Haskell(静态输入,纯粹) - 注意免费电子书Real World Haskell,包含您需要了解的所有内容
  2. Clojure(动态输入,不显示)
  3. Scala(静态类型,不可见) - 与Java完全(双向)互操作
  4. Newspeak
  5. Erlang - 为轻松处理并发而制作

答案 1 :(得分:12)

我很开心像ML(Caml),Haskell和Erlang这样的古老作品被视为“新的”。 Scala是真正的新东西,而F#试图将旧语言ML改编成.NET框架,并且必将是有趣的。

如果你想要一些非常新的东西,Agda就是“新的Haskell”。 Agda结合了从Haskell等20年历史的语言和ML等30年历史的语言中学到的许多经验教训,并推动了最新的类型系统工作。保证让你的头爆炸或加倍你的钱!

答案 2 :(得分:10)

想要添加OCaml。我很被吸引,因为它非常注重性能。如果我理解正确,F#来自OCaml。

但它不仅仅是功能性的,它也非常适合命令式编程。

答案 3 :(得分:9)

Haskell已经存在了一段时间,并且已经完成了很多基本的东西(足以编写可靠的生产应用程序),但在很多方面它仍然是一种学术语言。这真是一件美好的事情:作为一名商业程序员,我可以很好地完成我的工作,但我有能力深入研究一些其他语言无法提供的更有趣的概念和技术,而无需转换为方言我无法部署我的日常代码。

在Haskell编程时,看到未来如此接近以至于触摸它是非常有趣的。

答案 4 :(得分:3)

一种新的功能语言,主要关注元编程:

http://www.meta-alternative.net/mbase.html

一些例子:http://www.meta-alternative.net/pfront.pdf

答案 5 :(得分:3)

Nemerle是一种功能性的静态类型语言,具有对.NET的广泛元编程支持。与F#一样,它受到ML的启发,但它的语法与C#紧密相关,使其更具可读性。 Nemerle中的类型推断甚至比ML更强大,允许它在存在重载时从使用中推断出类型。

答案 6 :(得分:2)

Erlang,OCaml,Haskell,Scheme和特定领域的编程语言,如R(统计),Mathematica(符号数学),J和K(财务分析)和XSLT(XML)

答案 7 :(得分:1)

好吧,如果你想要真的很新,试试Babel-17吧。只有赶上:还没有实现它:-)但是有一个规范。查看http://www.babel-17.com

答案 8 :(得分:1)

功能性编程现在已经被主流采用,因此以前仅限学术的驱动器现在已经分为学术和工业实现。

F#是开发中工业功能语言的一个高调示例(here是John Conway的生命游戏的一个例子,用32行F#编写的GUI,here是我在F#上的书)。其他人包括Rich Hickey的Clojure和我自己的HLVM

学术界最近的高调功能语言是ATSLang和Scala。