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

两味真火
 两味真火
发布于 2017年01月17日
收藏 12

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

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

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

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

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

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

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

Lux 的开发者团队表示:

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

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

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

稿源:雷锋网

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Lisp 家族迎来新成员,函数式语言 Lux 是什么?
加载中

精彩评论

n
nazuna
@光辉女郎

最新评论(8

丑矬穷
丑矬穷
clojure还没学会,又来一个
开源中国-首席村长
开源中国-首席村长
Java 虚拟机语言一大堆,有意思?
Jun丶豪
Jun丶豪
小括号去哪?那个是lisp的精华啊~
xiaobing
xiaobing
没有了动态类型还能算lisp方言吗
挖红薯
挖红薯
好屌啊
n
nazuna
@光辉女郎
mahengyang
mahengyang
clojure也有类型,没看出跟clojure有什么区别,不过clojure奇奇怪怪的符号太多,看的眼花
晒太阳的小猪
晒太阳的小猪
自由开源吗??!!
返回顶部
顶部