Атомы и несколько частей одной функции в Erlang

… А также вызов одной функции из другой и заменой конкатенации аргумента в строку встроенным средством форматирования (~s)

%заголовок модуля должен совпадать с именем файла; без расширения
-module(er).

%объявляем функции перечислением
-export([init/0, hello/1]).

%однострочная функция без аргумента
hello(atom)->
io:format("Hello, Max\n" ,[]);

%многострочная функция с конкатенацией и аргументом
hello(Name)->
	io:format("Hello, ~s" ,[Name]),
	io:format("\n").

%вызов функции из другой функции
init()->
	hello(atom).


Вызывать выражение с атомом нужно точно:

er:hello(atom).


Другое выражение этой же функции с аргументом вызывается как и раньше:

er:hello("Nadya").


Таким образом, использование атома дало нам право не объявлять две разные функции, а использовать одну с двумя выражениями.

Первая прога на Erlang

Модуль er.erl


%заголовок модуля должен совпадать с именем файла; без расширения
-module(er).

%объявляем функции перечислением
-export([hello/0, hello/1]).

%однострочная функция без аргумента
hello()->
	io:format("Hello, Max\n" ,[]).

%многострочная функция с конкатенацией и аргументом
hello(Name)->
	io:format(string:concat("Hello, ",Name) ,[]),
	io:format("\n").


Запуск:

er:hello().

или:

er:hello("Nadya").