Erlang: атрибут модуля

Я новичок в Эрланге. Обнаружено следующее объявление атрибута -module в существующем проекте Erlang:

-module(mod_name, [Name, Path, Version]).

Что означает здесь второй параметр (список [Имя, Путь, Версия])?

Я не нашел никакой информации в справке по Erlang.


person alexey    schedule 31.08.2009    source источник
comment
Параметризованные модули еще официально не являются частью Erlang, хотя текущие дистрибутивы их поддерживают. Кроме того, чтобы быть в безопасности, вы никогда не должны напрямую вызывать функции в параметризованных модулях, за исключением новых. Всегда используйте ссылку, возвращенную из new.   -  person rvirding    schedule 01.09.2009
comment
Если параметризованные модули будут удалены, то не перестанут ли работать новые?   -  person yazz.com    schedule 18.02.2010
comment
Это действительно должно быть где-то официально задокументировано. Сейчас есть широко распространенные приложения, которые их используют (например, Mochiweb). Пример их использования в Mochiweb см. на code.google. .com/p/mochiweb/source/browse/trunk/src/   -  person Kevin Albrecht    schedule 23.12.2011
comment
Обратите внимание, что в Erlang R16, который будет выпущен 27 февраля 2013 года, поддержка параметризованных модулей в основном удалена. Подробности можно прочитать здесь.   -  person Steve Vinoski    schedule 27.01.2013


Ответы (2)


Это определяет параметризованный модуль erlang — тот, который вы можете «создать» с помощью new, а затем получить доступ к параметрам, переданным этим new, при выполнении кода в вашем модуле.

Очень краткий обзор здесь:

http://myotherpants.com/2009/04/parameterized-modules-in-erlang/

person Alan Moore    schedule 31.08.2009

Это параметризованный модуль. Вот исходный документ об этом. По сути, вы можете создавать экземпляры модуля, привязывая определенные значения к этим переменным. Вы можете инициализировать его как:

> Mod = mod_name:new("MyName", "/path", '0.1').

а затем вызовите его функции как:

> Mod:function(...)

где параметры модуля также доступны в теле функции.

person Zed    schedule 31.08.2009