lunes, 25 de octubre de 2010

.: Intrucciones Erlang :.

:: Erlang ::



Materia. Lab de Leng de Progr

Hora. V1(Jueves)

Continuando con la breve explicación sobre sintaxis y creación de archivos en lenguajes funcionales, continuaremos con el lenguaje Erlang.
Nuevamente me baso en gran parte sobre mi programa probabilidad.erl, creado para la clase de laboratorio, el cual te ayuda en el cálculo de combinaciones y permutaciones. Las cuales son funciones muy usadas en la materia de probabilidad.
Inicio de un archivo en Erlang
Primeramente, todo archivo que se crea para el lenguaje Erlang debe iniciar de la siguiente forma:
-module(nombre_del_archivo).
-export([funcion1/N, funcion2/N,funcionM/N]).

Para la primera línea, se aclara que siempre se debe declarar en primera instancia un módulo con la extensión de erl, donde nombre_del_archivo es el nombre que se le dio al archivo.
No les voy a mentir, no me quedo perfectamente claro en sí para qué se hace esto. Sin embargo, lo interpreto como los encabezados que manejábamos en lenguajes script, como por ejemplo:
  • #!/usr/bin/perl
  • #!/usr/bin/python
La función export simplemente funciona (a como yo lo veo) como la definición o la declaración que se le hace a nuestro código erl de que va a usar todas las funciones que tengamos ahí. Pueden ser una, dos o más funciones las que declaren o se vayan a utilizar en el código, nada más es de que deben ir separadas por una coma ( , ).
Si se dan cuenta las funciones se declaran escribiendo función / N, donde función representa el nombre la función que vamos a manejar en nuestro programa.
N representa un número entero que hace referencia al número de variables que maneja dicha función.
Para que lo visualicen un poco más, mi programa empieza así;
-module(probabilidad).
-export([fac/1, permu/2, combi/2]).

Donde sí se dan cuenta, en la instrucción module tengo escrito en nombre de mi programa.
Si nos vamos a la declaración de funciones, vemos que fac se encuentra sobre 1; esto es porque esta función sólo recibe una variable para trabajar.
Nos vamos a las otras dos funciones, y vemos que ambas se encuentran sobre 2, y es porque requieren de dos variables que se le deben proporcionar para trabajar.
Simplemente compruébenlo.
fac(1) -> 1;
fac(N) -> N * fac(N - 1).      <- USA UNA VARIABLE

permu(N,X) -> ((fac(N)) / (fac(N - X))).  <- USA 2 VARIABLES

combi(N,X) -> ((fac(N)) / (fac(N - X) * fac(X))). <- USA 2 VAR.
Creación de procesos e Instrucciones.
Primeramente, lo que se debe de saber es que para colocar una función, el símbolo de =  que normalmente usamos, en Erlang se coloca ->.
Todo proceso e instrucción debe terminar con un punto ( . ), pues es lo que me indica el fin de mi proceso o función.
Cuando en un mismo proceso, se manejan más de una línea, únicamente se coloca punto y coma ( ; ) al final de cada renglón.
La manera de escribir una función (por lo más común) es la siguiente:
función(arg1, arg2) -> Proceso a realizar.
Donde arg1, arg2… representan las variables con las que va a trabajar nuestro código.
Un ejemplo de lo antes mencionado puede ser:
fac(1) -> 1;
fac(N) -> N * fac(N - 1).
Ejecución de un código en Erlang
Antes que nada, debemos escribir en el terminal erl. Una vez hecho esto, se escribe lo siguiente:
c(nombre_del_archivo.erl)
Por ejemplo en caso, escribiría:
c(probabilidad.erl)
Y para hacer funcionar alguna de esas funciones es la siguiente:
nombre_del_archivo:nombre_de_la función(argumentos).
Para que lo aprecien un poco más, si desea calcular 5 Combinación de 3 sólo se escribe lo siguiente:
probabilidad:combi(5, 3).
De cualquier forma les dejo el tutorial que maneje para Erlang y un link que también me fue de mucha utilidad.
Por mi parte es todo, ya saben que cualquier comentario no duden en hacerlo.
Saludos a todos.

1 comentario: