2009-08-31 13 views
8

Soy nuevo en Erlang. encontró lo siguiente -module declaración atributo en un proyecto de Erlang existente:Erlang: módulo atributo

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

¿Qué quiere decir el segundo parámetro (lista [Nombre, Ruta, Version]) aquí?

No se encontró información en la referencia de Erlang.

+2

Los módulos parametrizados aún no son oficialmente parte de Erlang, aunque las distribuciones actuales los admiten. También para estar seguro, a excepción de nuevo, nunca debe llamar directamente a funciones en un módulo parametrado. Siempre use la eferencia devuelta de nuevo. – rvirding

+0

Si se eliminan los módulos parametrizados, ¿no dejará de funcionar el nuevo? – Zubair

+0

Esto realmente debería documentarse en algún lugar oficialmente. Ahora hay aplicaciones ampliamente utilizadas que las usan (Mochiweb, por ejemplo). Por ejemplo, de su uso en Mochiweb, consulte http://code.google.com/p/mochiweb/source/browse/trunk/src/mochiweb_request.erl –

Respuesta

7

Este es un módulo parametrizado. Aquí está el original paper en él. Básicamente puede crear instancias del módulo vinculando valores específicos a esas variables. Puede inicializar una como:

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

y luego llamar a sus funciones como:

> Mod:function(...) 

donde los parámetros de los módulos también están disponibles en el cuerpo de la función.

Cuestiones relacionadas