×

Clojerl基于Erlang VM的Clojure实现

消耗积分:2 | 格式:zip | 大小:0.64 MB | 2022-06-13

386660

分享资料个

授权协议 EPL-1.0
开发语言 Clojure ErLang
操作系统 Linux
软件类型 开源软件
所属分类 编程语言

软件简介

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

初衷

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

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

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

目标

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

环境要求

构建 clojerl 需要 Erlang/OTP 18+ 以及 rebar3

git clone https://github.com/clojerl/clojerl
cd clojerl
make

示例代码

case.clje

(ns examples.case)

(let* [x :b
       y (case* x
                :a 1
                :b 2
                :c 3)
       z (case* y
                x 2
                #erl [:default :value])]
  (erlang/display x)
  (erlang/display y)
  (erlang/display z))

(defn case-match-ignore [x]
  (case* x
    #erl[_ y _] y))

;; First and third don't have to be equal
(let* [2 (case-match-ignore #erl[1 2 3])])

(defn case-match [x]
  (case* x
    #erl[a y a] y))

;; First and third don't have to be equal
(let* [2 (case-match #erl[1 2 1])])

更多示例代码点此查看

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

 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !