Entradas

Ejemplo Elixir. Gestión de login + OTP

Imagen
En este ejemplo veremos un gestor de login parcialmente desarrollado. Es un problema sencillo de gestión de estado… El interfaz del actor estará compuesto por dos métodos  rq_key  y  rq_login Solución manual defmodule LoginManager do def start , do : ... def ( rq_key door ), do : ... def ( rq_login door , user_name , codded_pass ), do : ... end En Elixir podemos modelarlo… defmodule LoginManager do def start do from_pid = self spawn ( fn -> loging_manager_loop : w_rq_key , from_pid end ) end defp loging_manager_loop : w_rq_key , from_pid do ... end defp loging_manager_loop : w_rq_login , key , from_pid do ... end end La implementación del estado  :w_rq_login … defp loging_manager_loop : w_rq_login , key , from_pid do receive do { : rq_login , user_name , codde...

Construcción de torres. Elixir

Recientemente un compañero me planteó el siguiente problema. Un problema ideal para hacer una kata con Elixir… Enunciado Hay que construir todas las torres posibles de altura n apilando piezas que son idénticas en todo menos en la altura. La altura de las piezas es 1, 2, 3, 4… y hay infinitas piezas. La torre se construye apilando una pieza encima de otra, no hay varias piezas en el mismo nivel. ¿Para una altura  n , cuantas torres diferentes se pueden construir? Ejemplos Torre altura 1  1 Torre altura 2  1 1 2 _ Torre altura 3  1 1 1 2 _ 1 1 2 _ 3 _ _ Para construir todas las torres, tenemos que buscar un procedimiento ordenado. Procedimiento contrucción torres Ejemplo construcción torre altura 3  1 .... 1 .... 1 111 2 12_ 2 .... 1 2_1 3 3__ Ejemplo construcción torre altura 4  1 .... 1 .... 1 .... 1 1111 2 ...