Erlang はフォールトトレラント、分散処理、リアルタイム処理に適した、汎用並列指向関数型プログラミング言語です。強力な動的型付け、軽量な並列処理、先行評価、Prologのようなパターンマッチを特徴としています。Erlangは1980年代にEricsson Computer Science Laboratoryで開発され、当時満たされていなかった電気通信プログラミングのニーズを満たしました。
Erlangのルーツは電気通信ですが、そのユニークな機能と豊富なライブラリーにより、汎用プログラミング言語として適しており、ネットワークサーバー、制御システム、Web開発などのプログラミングプロジェクトによく適しています。
Erlang言語は、アプリケーションやモジュールの豊富なライブラリ、仮想マシンやオペレーティングシステム、標準的な動作を確立する設計原則のセットとともに、Erlang/OTP(Open Telecommunications Platform)を構成しています。Erlang/OTPはフリーソフトウェア（Apache Public License）として配布されており、Ericssonから商業的にサポートされたバージョンもあります。どちらのディストリビューションもMicrosoft 
Windows、Wind RiverのVxWorks、および多くの種類のUnixで動作します。
ほとんどの OS のパッケージマネージャーは、ビルド済みのバイナリーパッケージを提供しています。
Microsoft Windows の Winget: winget install "Erlang OTP"
macOS の Homebrew: brew install erlang
macOS の MacPorts: port install erlang
FreeBSD の Ports: pkg install erlang
GNU/Linuxのディストリビューション
[https://paiza.io/projects/QT223SPgIxIu2BH3EQ8inw?language=erlang hello.erl]:
-module(main).
-export([main/1]).
%% My first Erlang code
main([_]) ->
    io:format("Hello world!"),
init:stop() .
Erlangは関数型プログラミング言語で、以下のような基本的な文法があります。
Erlangでは、変数は小文字で始まります。変数には再代入ができず、一度値を束縛すると変更できません。
変数の例:
X = 10.
Y = X + 5.
Erlangのアトムは、名前のあるユニークな不変値です。アトムは、小文字で始まり、英数字、アンダースコア（_）、アットマーク（@）で構成されます。また、シングルクォーテーション（'）で囲むことで大文字で始まるアトムや英数字以外の文字も使うことができます。
アトムは値はアトムそのものです。
Erlangのリストは、角かっこで囲まれたカンマ区切りの値のシーケンスです。リストは動的に長さを変更できます。
リストの例:
[1, 2, 3]. 
[1 | [2, 3, 4]].
タプルは、中括弧で囲まれたカンマ区切りの値のシーケンスです。タプルは静的で不変であり、フィールドは整数のインデックスでアクセスされます。
タプルの例:
{1, 2, 3}. 
{atom1, "hello", [1, 2, 3]}.
Erlangでは、funキーワードを使用して無名関数を定義できます。また、関数の定義には、パターンマッチングを使用することができます。
関数定義の例:
double(X) -> X * 2.
Erlangには、条件文、ループ、および例外処理のための制御構造があります。
if文:
if
  X > 0 ->
    positive;
  X < 0 ->
    negative;
  true ->
    zero
end.
case文:
case X of
  0 -> zero;
  1 -> one;
  _ -> other
end.
パターンマッチングを使用した関数:
is_even(X) when X rem 2 == 0 -> true;
is_even(_) -> false.
ループ:
loop(X) ->
  if X > 10 ->
       done;
     true ->
       io:format("X is ~p~n", [X]),
       loop(X+1)
  end.
例外処理:
try
  1 / 0
catch
  error:Arithmetic -> io:format("division by zero")
end.