function erlang

function - != erlang



DefiniciĆ³n de funciones de erlang en el shell (3)

¿Hay alguna manera de definir una función de Erlang dentro del shell Erlang en lugar de desde un archivo erl?



Una respuesta es que el shell solo evalúa expresiones y las definiciones de funciones no son expresiones, son formularios. En un archivo erl define formas, no expresiones.

Todas las funciones existen dentro de los módulos, y aparte de las definiciones de funciones, un módulo consta de atributos, el más importante es el nombre de los módulos y qué funciones se exportan de ellos. Solo se pueden llamar las funciones exportadas desde otros módulos. Esto significa que se debe definir un módulo antes de poder definir las funciones.

Los módulos son la unidad de compilación en erlang. También son la unidad básica para el manejo del código, es decir, son módulos completos que se cargan, actualizan o eliminan del sistema. En este sentido, definir las funciones por separado, una por una, no encaja en el esquema de las cosas.

Además, desde un punto de vista puramente práctico, compilar un módulo es tan rápido que hay muy poca ganancia para poder definir funciones en el shell.


Sí, pero es doloroso A continuación se muestra una "declaración de función lambda" (también conocida como fun en términos de Erlang).

1 > F = diversión (X) -> X + 2 final.

#Fun <erl_eval.6.13229925>

Eche un vistazo a esta post . Incluso puede ingresar el valor de declaración de un módulo si alguna vez lo necesita. En otras palabras, sí, puedes declarar funciones.