Компилятор сабсета эрланга в бинарник. Для образовательных целей.
Для сборки нужен ghc 9.6.1 и hpack
hpack
cabal install --overwrite-policy=always
agner -o example example.erl
./example
- целые числа
- атомы
- функции с патматачем
- ссылки на функции
- кортежи
- списки
- гц
- оптимизация хвостовых вызовов (необязательно рекурсивных, и даже для лямбд)
- spawn + процессы + шедулер
- receive + send
- строки, литералы чаров
- begin Expr+ end.
- операторы для чисел: +/1, -/1, +/2, -/2, */2, div/2, rem/2
- битовые операторы: bnot/1, band/2, bor/2, bxor/2, bsl/2, bsr/2
- булевы операторы: not/1, and/2, or/2, xor/2
- ленивые операторы: andalso/2, orelse/2
- операторы сравнения: ==, /=, =<, <, >=, >, =:=, =/=
- операторы для списков: ++/2
- case Expr of (Pat -> Exprs)+ end
- гарды
- if
- модули (module, ренейминг)
- рекорды
- мапы
- лямбды
- лист-выражения
- мап-выражения
- erlang-модуль - prelude
- maybe
- прагма import
- прагма export
- раздельная компиляция
- catch
- try-[catch]-[after] (кроме try-of)