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.
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