domingo, 27 de junio de 2021

Erlang: constantes


Una variable es, básicamente, algo que puede cambiar de valor. Incluso de tipo en lenguajes de programación de tipado dinámico. Por el contrario, una constante es algo que no puede variar. Algo que permanece sin cambio, inmutable.

Para definir constantes en Erlang debemos crear una macro.

%% Macro
-define(MYMACRO (X,Y), X+Y).

%% Valor constante
-define(CONSTANTE, 3300).

Como se puede ver es muy parecido a lo que se hace en lenguajes como C.
// Macro
#define MYMACRO (X,Y) (X+Y)

// Valor constante
#define CONSTANTE 3300

Todo claro hasta aquí...pero, ¿cómo usamos estas constantes (Macros)?

%% ...
%% ...
io:format("Suma = ~p~n",[?MYMACRO(34.5,32.1)]),
io:format("Constante: ~p~n",[?CONSTANTE]).
Esto muestra como podemos hacer uso de estas constantes (Macros) en Erlang. Crearemos un programa llamado constantes.erl el cual tendrá dos constantes y una macro.
constantes.erl
%% @doc Constantes en Erlang
-module(constantes).
-author("Codemonkey Junior").
-version("1.0.0").
-export([start/0]).
-define(TITULO,"====== CONSTANTES EN ERLANG ======").
-define(MAX, 1000).
-define(SUMA (X,Y), X+Y).

start()->
   io:format("~p~n",[?TITULO]),
   io:format("MAX = ~p~n",[?MAX]),
   X = 8.7,
   Y = 4.32,
   io:format("X = ~p, Y = ~p ~n",[X,Y]),
   io:format("SUMA = ~p~n",[?SUMA(X,Y)]).


%% erl
%% > c(constantes).
%% constantes:start().
Ejecutando...
$ erl
Erlang/OTP 24 [erts-12.0.2] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [jit]

Eshell V12.0.2  (abort with ^G)
1> c(constantes).
{ok,constantes}
2> constantes:start().
"====== CONSTANTES EN ERLANG ======"
MAX = 1000
X = 8.7, Y = 4.32 
SUMA = 13.02
ok
3> 

Enlaces:
https://erlang.org/doc/reference_manual/macros.html

No hay comentarios:

Publicar un comentario