Erlang - базовый синтаксис
Чтобы понять основной синтаксис Erlang, давайте сначала рассмотрим простой Hello World программа.
пример
% hello world program
-module(helloworld).
-export([start/0]).
start() ->
io:fwrite("Hello, world!\n").
В отношении вышеуказанной программы необходимо отметить следующее:
Знак% используется для добавления комментариев к программе.
Оператор модуля похож на добавление пространства имен, как в любом языке программирования. Итак, здесь мы упоминаем, что этот код будет частью модуля с именемhelloworld.
Функция экспорта используется для использования любой функции, определенной в программе. Мы определяем функцию с именем start, и чтобы использовать функцию start, мы должны использовать оператор экспорта. В/0 означает, что наша функция start принимает 0 параметров.
Наконец, мы определяем нашу стартовую функцию. Здесь мы используем другой модуль под названиемioкоторый имеет все необходимые функции ввода-вывода в Erlang. Мы использовалиfwrite функция вывода «Hello World» на консоль.
Результатом вышеуказанной программы будет -
Вывод
Hello, world!
Общая форма заявления
В Erlang вы видели, что в языке Erlang используются разные символы. Давайте рассмотрим то, что мы видели в простой программе Hello World -
Символ дефиса (–)обычно используется вместе с модулем, оператором импорта и экспорта. Символ дефиса используется для придания значения каждому утверждению соответственно. Итак, примеры из программы Hello world показаны в следующей программе -
-module(helloworld).
-export([start/0]).
Каждый оператор разделяется точкой (.)символ. Каждый оператор в Erlang должен заканчиваться этим разделителем. Пример из программы Hello world показан в следующей программе -
io:fwrite("Hello, world!\n").
Слэш (/) символ используется вместе с функцией для определения количества параметров, которые принимает функция.
-export([start/0]).
Модули
В Erlang весь код разделен на модули. Модуль состоит из последовательности атрибутов и объявлений функций. Это похоже на концепцию пространства имен в других языках программирования, которая используется для логического разделения различных единиц кода.
Определение модуля
Модуль определяется идентификатором модуля. Общий синтаксис и пример следующие.
Синтаксис
-module(ModuleName)
В ModuleName должно быть таким же, как имя файла без расширения .erl. В противном случае загрузка кода не будет работать должным образом.
пример
-module(helloworld)
Эти модули будут подробно описаны в следующих главах, это было сделано только для того, чтобы вы получили общее представление о том, как следует определять модуль.
Оператор импорта в Erlang
В Erlang, если кто-то хочет использовать функциональные возможности существующего модуля Erlang, можно использовать оператор import. Общая форма оператора импорта изображена в следующей программе -
пример
-import (modulename, [functionname/parameter]).
Куда,
Modulename - Это имя модуля, который необходимо импортировать.
functionname/parameter - Функция в модуле, которую нужно импортировать.
Давайте изменим способ написания нашей программы hello world, чтобы использовать оператор импорта. Пример будет таким, как показано в следующей программе.
пример
% hello world program
-module(helloworld).
-import(io,[fwrite/1]).
-export([start/0]).
start() ->
fwrite("Hello, world!\n").
В приведенном выше коде мы используем ключевое слово import для импорта библиотеки 'io' и, в частности, fwriteфункция. Итак, теперь всякий раз, когда мы вызываем функцию fwrite, нам не нужно упоминатьio имя модуля везде.
Ключевые слова в Erlang
Ключевое слово - это зарезервированное слово в Erlang, которое не должно использоваться для каких-либо иных целей, кроме той, для которой оно было предназначено. Ниже приведен список ключевых слов в Erlang.
после | и | а также | группа |
начать | bnot | бор | BSL |
бср | bxor | дело | поймать |
cond | div | конец | весело |
если | позволять | не | из |
или же | Орлсе | Получать | rem |
пытаться | когда | xor |
Комментарии в Erlang
Комментарии используются для документирования вашего кода. Однострочные комментарии обозначаются с помощью символа%символ в любой позиции в строке. Ниже приведен пример того же -
пример
% hello world program
-module(helloworld).
% import function used to import the io module
-import(io,[fwrite/1]).
% export function used to ensure the start function can be accessed.
-export([start/0]).
start() ->
fwrite("Hello, world!\n").