sábado, 30 de abril de 2022

Katas de programación en Erlang

Katas propuestas

1. Crear un programa que convierta pulgadas a centímetros y viceversa.

2. Crear un programa que convierta grados celsius a fahrenheit y viceversa.

3. Crear un programa que sume únicamente los números pares de una lista cualquiera.

4. Si enumeramos todos los números naturales debajo de 10 que son múltiplos de 3 o 5, obtenemos 3, 5, 6 y 9. La suma de estos múltiplos es 23. Encuentra la suma de todos los múltiplos de 3 o 5 por debajo de 1000.

Nota: Este último ejemplo viene de la página de Project Euler

 

Recordando...

Los tipos de programación se pueden dividir en:

1. Programación Imperativa: Donde se describen, paso a paso, las instrucciones necesarias para resolver el problema.
2. Programación Declarativa: Donde se describe el problema que tenemos que solucionar pero no el cómo hacerlo.

En este último entran lenguajes como Haskell, Erlang y/o Elixir. Lenguajes de paradigma funcional. Donde se definen funciones similares a las funciones matemáticas.

 

 

Código en Erlang

conversiones.erl

%% Operaciones con Erlang
-module(conversiones).
-author("Codemonkey Junior").
-export([cent/1,pulg/1]).
-compile(nowarn_export_all).

pulg(N)-> N/2.54.
cent(N)-> N*2.54.

Salida:

$ erl
> conversiones:pulg(4).
1.574803149606299
> conversiones:cent(1.574803149606299).
3.9999999999999996

conversion_grados.erl

%% Operaciones con Erlang
-module(conversion_grados).
-author("Codemonkey Junior").
-export([fahr/1,cels/1]).
-compile(nowarn_export_all).


% De Celsius a Fahrenheit
fahr(N)-> (1.8*N)+32.

% De Fahrenheit a Celsius
cels(N)-> (N-32)/1.8.

Salida:

$ erl
 > c(conversion_grados).
 > conversion_grados:fahr(34.8).
   94.64
 > conversion_grados:cels(94.64).
   34.8

Tip: Para obtener más información de un módulo podemos teclear:

$ erl
> c(programa).
> programa:module_info().

Donde la función module_info() nos lista la información del programa o módulo.

$ erl
> c(programa).
> programa:module_info().
[{module,programa},
 {exports,[{start,0},
           {suma,2},
           {resta,2},
           {fahr,1},
           {cels,1},
           {factorial,1},
           {combinatorio,2},
           {pulg,1},
           {cent,1},
           {mcd,2},
           {module_info,0},
           {module_info,1}]},
 {attributes,[{vsn,[276758998827383991874529587796040092315]},
              {author,"Codemonkey Junior"}]},
 {compile,[{version,"8.1"},
           {options,[]},
           {source,"/home/codemonkey/Documentos/pruebasErlang/programa.erl"}]},
 {md5,<<208,53,216,37,125,14,40,139,135,22,83,244,140,34,
        10,155>>}]

suma_multiplos.erl

Este programa se verá en el siguiente post.


 Au revoir!!

Enlaces:

https://projecteuler.net/archives
https://erlangbyexample.org
https://learnyousomeerlang.com

 

No hay comentarios:

Publicar un comentario

Vibe Coding (la programación vía IA): ¿el futuro de la programación?

Vibe Coding es un nuevo paradigma de programación, una nueva forma de crear código. Es un enfoque emergente en el desarrollo de sof...

Etiquetas

Archivo del blog