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

WebAssembly con Dlang

WebAssembly es un lenguaje de bajo nivel, similar a ensamblador, diseñado para ser rápido de cargar y ejecutar en navegadores modernos....

Etiquetas

Archivo del blog