Erlang

出自維基百科,自由嘅百科全書
跳去導覽 跳去搵嘢
Erlang
Erlang logo.svg
編程範式多重典範英文Programming_paradigm#Support_for_multiple_paradigms函數式並發
設計者祖·岩士唐、Robert Virding、Mike Williams
編程員愛立信
第一次出現1986年, 37年之前 (1986)
穩定版本
24.1[1] / 2021年9月22號, 16個月之前 (2021-09-22)
類型系統動態
軟件授權Apache許可證2.0
(從OTP 18.0開始) Erlang 公共許可協議 1.1英文Erlang Public License
(早期版本)
副檔名.erl 、.hrl
網站www.erlang.org
Major implementations
Erlang
啟發語言
PrologSmalltalkPLEX英文PLEX (programming language)[2]LISP
影響語言
AkkaClojureDartElixirF♯Opa英文Opa (programming language)Oz、Reia、RustScala

Erlang係一種通用嘅函數式。Erlang都可以指Erlang/OTP嘅通稱,開源電信平台(OTP)係Erlang嘅常用執行環境同埋一系列嘅標準元件。

Erlang 執行環境係專有以下要求嘅系統設計:

其他程式設計典範[編輯]

惰性求值[編輯]

Erlang程式員可以用惰性求值。但係,必須用λ演算式,先至可以做到惰性求值。

以下是惰性求值的一例:假設有個剖析器程式如下,由於同埋早求值特徵,呢個程式將唔會求解。

Expr() -> alt(then(factor(), then(literal($+), factor())),
              Then(factor(), then(literal($-), factor()))).
Factor() -> alt(then(term(), then(literal($*), term())),
                Then(term(), then(literal($/), term()))).
Term() -> alt(number(),
              Xthen(literal($(), thenx(expr(), literal($))))).

呢度用λ演算式同埋適當用函數名稱表示,就可以進行求值。示例如下。

Expr() ->
    Fun () ->
          Alt(then(fun factor/0, then(literal($+), fun factor/0)),
              Then(fun factor/0, then(literal($-), fun factor/0)))
    End.
Factor() ->
    Fun () ->
            Alt(then(fun term/0, then(literal($*), fun term/0)),
                Then(fun term/0, then(literal($/), fun term/0)))
    End.
Term() ->
    Fun () ->
          Alt(number(),
              Xthen(literal($(), thenx(expr(), literal($)))))
    End.

應用[編輯]

社區[編輯]

參考[編輯]

  1. "Releases". 原先內容歸檔喺2021-08-18. 喺2021-09-22搵到.
  2. "18:30". 原先內容歸檔喺2017-07-15. 喺2018-05-05搵到.
  3. Erlang同埋FreeBSD. 原著喺2014-02-25歸檔. 喺2014-02-22搵到.

睇多啲[編輯]

出面網頁[編輯]