Clojerl 基于 Erlang VM 的 Clojure 实现开源项目

我要开发同款
匿名用户2019年06月19日
137阅读
开发技术Clojure
所属分类编程语言
授权协议EPL-1.0

作品详情

Clojerl是构建在ErlangVM之上的【实验性】Clojure实现,目标是结合Clojure的功能和理念(如宏、集合、序列、协议、多方法和元数据等),再加上 ErlangVM的健壮性,综合两者的长处来构建【分布式】系统。

初衷Erlang是构建安全,可靠和可扩展系统的优秀编程语言。它提供了开箱即用、不可变、且具有持久性的数据结构,其自带的并发语义是任何其他语言无法比拟的。

Clojure属于Lisp方言,因此它继承了Lisps的良好特性。除了这些,Clojure还引入了其他功能,例如协议、多方法和序列等。

Clojure旨在简化并发程序的开发,并且它的一些并发抽象也适用于Erlang。将ErlangVM的强大功能与Clojure的表现力相结合,可以提供一个有趣且有用的结果,使开发者的生活更简单,让世界变得更加幸福。

目标提供尽可能顺畅的互操作性,像 Clojureproper和ClojureScript一样提供大多数Clojure抽象提供所有Erlang抽象和工具集在Clojerl中引入默认的OTP库环境要求

构建 clojerl 需要 Erlang/OTP18+ 以及 rebar3。

gitclonehttps://github.com/clojerl/clojerlcdclojerlmake示例代码case.clje(nsexamples.case)(let*[x:by(case*x:a1:b2:c3)z(case*yx2#erl[:default:value])](erlang/displayx)(erlang/displayy)(erlang/displayz))(defncase-match-ignore[x](case*x#erl[_y_]y));;Firstandthirddon'thavetobeequal(let*[2(case-match-ignore#erl[123])])(defncase-match[x](case*x#erl[aya]y));;Firstandthirddon'thavetobeequal(let*[2(case-match#erl[121])])

更多示例代码点此查看。

软件主页:https://try.clojerl.online/

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论