Lisp 家族迎来新成员,函数式语言 Lux 是什么?

代码世界即将加入一门新成员:Lux。你没看错,它不是洗发水,而是古老的 Lisp 家族中新诞生的函数式语言。

目前 Lux 还在研发之中,最新版本是 0.5.0。它可被用来编写一系列在 JVM (Java 虚拟机)上运行的程序。但它的语义并不是与 JVM 绑定的,因此,Lux 应该被理解为是一门通用语言,被设计用来尽可能多平台地进行程序表示。但同时,它要能够深入每一个特定平台,实现后者的丰富功能。

Lisp 家族迎来新成员,函数式语言 Lux 是什么?

作为新语言,它有何特别之处?

Lux 是纯粹的函数式编程语言,它采用了严格计算(eager-evaluation)而非惰性计算,来提高逻辑简洁性,而适当牺牲性能和程序行为。这门语言受到 Haskell、Clojure 和 ML 的启发。其中,Clojure,这门同样基于 Lisp、面向 JVM 的主流语言,是 Lux 的首要启发来源。但和 Clojure 不同的是,Lux 采用了静态类型(statically typed)以提高性能并减少漏洞。

Lisp 家族迎来新成员,函数式语言 Lux 是什么?

Lux 允许开发者通过编程创造新类型,这会提供动态类型语言(dynamically typed )所具有的灵活性。函数式语言 Haskell 有类型类(type classes),而雷锋网获知, Lux 的约束性不会这么强——想要绕过任何约束可在语言中原生实现,而不需要黑入类型系统。

Lisp 开发于 1958 年,是最早的用于人工智能的编程语言。现在用的人虽然少了,但多门基于 Lisp 的变种、或者说子孙语言,仍然占有重要地位。这些基于 Lisp 的语言,使得开发者进行元编程(metaprogramming)成为了可能——改变语言本身的行为,或者编写能写代码的代码。Lux 通过与 Lisp 类似的宏(macros)来实现这一点,但这同时把 Lux 的编译器暴露为语言中的一件物体。通过这种方式,Lux 可以定制能被用户重写的模型匹配系统( pattern-matching systems )。
Lisp 家族迎来新成员,函数式语言 Lux 是什么?

雷锋网获知,尽管提供了与 Java 的交互操作,Lux 会专注于函数式编程。

Lux 的开发者团队表示:

Lux 既简洁又复杂。它的设计允许你只用一个小的子集,就能创建出高效的程序。但 Lux 的目标是为我们提供有一系列强大工具的武器库,来满足开发者在各类项目中的不同需求。

他们还表示,虽然函数式语言是学界人士做研究的最爱,但 Lux 为软件开发人员的日常工作而设计。

对 Lux 感兴趣的程序猿们,可通过 GitBooks 获得它的详细介绍。顺便提醒一下,这有一本书那么厚。

文章转载自 开源中国社区 [http://www.oschina.net]

上一篇:Google Earth Engine(GEE)——美国城市热岛效应UHI application包含(昼夜温度、年均气温、人种信息以及人均收入)


下一篇:云计算:关系数据库是否就要被淘汰了