Начнем с самого начала. Первое, что вам нужно сделать, это установить Erlang. Существует полное руководство по установке, которое охватывает все конфигурации. Находясь на сайте, обязательно добавьте документы в закладки. Вы будете часто обращаться к ним, когда будете учиться! Далее вам понадобится текстовый редактор. Если у вас еще нет любимого редактора, рекомендую Visual Studio Code. По состоянию на начало 2018 года VS code является проектом номер один на Github с точки зрения активности участников, и это видно. Редактор на голову опережает конкурентов с точки зрения конфигураций, поддержки плагинов и во многих случаях даже скорости.
После настройки откройте системный терминал. В коде VS также есть удобный встроенный терминал, который вы можете открыть, нажав ctrl + `
. Затем введите erl
в терминале. Это интегрированный REPL Erlang. Попробуйте ввести несколько простых астматических выражений, строк и т. д.... немного покопайтесь.
начинаем писать простой модуль
-module(basic_math). -export([basic_math/0]).
Примечание:
1. Название модуля должно совпадать с названием файла
2. Нам нужно экспортировать все функции, которые мы собираемся вызывать из внешних функций, перечисленных в формате имя/арность (арность — это количество аргументов, которые ожидает функция)
3. Если мы практикуемся, то мы можем экспортировать все функции, используя
-compile(export_all).
Эта функция выполняет основные арифметические действия и печатает результаты
basic_math() -> io:format("1. Simple addition - ~p~n", [2 + 3]),
io:format используется для печати значений. ~p заменяется значением из предоставленного списка
в качестве второго аргумента. ~n для новой строки. ~p для красивой печати. Можно использовать erl -man io
чтобы получить справочную страницу модуля io и справку по поиску модуля формата, чтобы понять параметры, отличные от ~ p и ~ n
io:format("2. Multiplication of very big integers " "- ~p~n"[2234234234 * 234234234234234]),
Целочисленная арифметика в Erlang точна, поэтому никогда не нужно беспокоиться о переполнении.
io:format("3. Integers in other base are - ~p and ""~p~n",[51966, 30359899]),
Целые числа можно записывать с любым основанием от 2 до 36. Формат записи целых чисел с основанием, отличным от 10, — «основание#число».
io:format("4. ASCII value of a and A are ~p and ""~prespectively~n",[$a, $A]),
Мы можем получить значение символов ASCII в виде целых чисел по предшествующему символу со знаком $.
Целочисленное деление
io:format("5. Integer division 5/3=~p~n", [5 / 3]),
Поплавковое деление
io:format("6. Float division 5.0/3.0=~p~n",[5.0 / 3.0]),
Остаток от деления
io:format("7. Remainder of divison 5/3=~p~n",[5 rem 3]),
Коэффициент деления
io:format(“8. Quotient of divison 5/3=~p~n”, [5 div 3]),
Значение последнего выражения возвращается как значение вызова функции. Последний оператор функции заканчивается на . а не с, точка (.) помогает указать конец определения функции.
ok.
Чтобы скомпилировать и запустить это, мы запускаем оболочку Erlang в каталоге, где мы сохранили basic_math.erl, и делаем следующее:
$ erl Erlang/OTP 22 [erts-10.4] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [hipe] [dtrace] Eshell V10.4 (abort with ^G) 1> c(basic_math). {ok,basic_math} 2> basic_math: basic_math/0 module_info/0 module_info/1 2> basic_math:basic_math(). 1. Simple addition - 5 2. Multiplication of very big integers - 523334144900900377566756 3. Integers in other base are - 51966 and 30359899 4. ASCII value of a and A are 97 and 65 respectively 5. Integer division 5/3=1.6666666666666667 6. Float division 5.0/3.0=1.6666666666666667 7. Remainder of divison 5/3=2 8. Quotient of divison 5/3=1 ok 3> halt(). $
Команда c(basic_math) компилирует код в basic_math.erl {ok,basic_math} означает, что компиляция прошла успешно. теперь код готов к запуску. В строке 2 мы вычислили функцию basic_math:basic_math(). В строке 3 мы остановили оболочку Erlang.