Entradas

Creando un sencillo API REST con Cabal

Imagen
En está ocasión vamos a crear un sencillo servicio API Rest con Cabal. Consumiremos un sencillo JSON como este: [ { "autor" : "Thomas Muller" , "id" : "1000" , "precio" : "299.0" , "titulo" : "Sangre roja" }, { "autor" : "Mariana Seller" , "id" : "1001" , "precio" : "309.0" , "titulo" : "Tierra Hueca" } ] Requerimientos: Tener instalado Haskell.  Tener instalado Cabal. Instalar las dependencias: aeson , text , wai , warp , servant , servant-server . Creando el servicio API con Cabal Veremos algo sobre las dependencias necesarias. Aeson (análisis y codificación rápidos de JSON) Se trata de una biblioteca de análisis y codificación JSON optimizada para ofrecer facilidad de uso y un alto rendimiento. Servant Servant es un conjunto de paquetes para declarar APIs web a nivel de tipos y util...

Un vistazo a Koka

Imagen
Koka es un lenguaje de programación: Funcional fuertemente tipado. Sistema de tipos con efectos. Handlers de efectos algebraicos. Compilación directa a C con referencia contada ( Perceus ). Optimización para reutilización en estilo funcional. Hola, mundo en Koka Para conocer el lenguaje no hay como crear el clásico programa de "Hola, mundo" . holamundo.kk module holamundo fun main () { println( "Hola, mundo en Koka" ) } A primera vista nos recuerda un poco a Go o hasta Python. Para ejecutar el programa abrimos una terminal y tecleamos:: $ koka holamundo . kk # O con este otro comando $ koka -- execute holamundo . kk Si todo va bien, se mostrará este mensaje en la consola: Hola, mundo en Koka REPL de Koka Abrimos el REPL de koka: $ koka Veremos esto en la consola. Y escribiremos un sencillo mensaje: _ _ | | | | | | _ ___ | | _ __ _ welcome to the koka interactive co...

Mónadas (Monads) en Haskell

Imagen
Si nos vamos al concepto tradicional de lo que es una mónada en Haskell tendremos lo siguiente: "Una mónada es un patrón de diseño que estructura cálculos en una secuencia de pasos y maneja efectos secundarios de forma pura". Se debe distinguir de la definición de Mónada hecha por el filósofo alemán Gottfried Wilhelm Leibniz. La cual dice: "Una mónada es la base de todo lo existente; la materia espiritualizada". Para Leibniz, es la substancia simple, única e independiente que compone la realidad en la que vivimos. Algunos más aventurados la considerarían el alma misma. Mónadas Una mónada es como una caja mágica que envuelve un valor y sabe cómo aplicar funciones a ese valor sin que tú tengas que preocuparte por los detalles. En la programación funcional , una mónada (monad), es un patrón de diseño que representa cálculos definidos como una secuencia de pasos, permitiendo componer funciones con tipos incompatibles encapsulándolos e...

Funciones en Haskell

Imagen
Hoy veremos lo que son las funciones en Haskell . Recordemos que este lenguaje toma mucha inspiración de las Matemáticas. Por lo que veremos primero la definición de lo que es una función en Matemáticas. Función matemática Una función es: regla que asigna a cada valor de entrada un único valor de salida . Ejemplo. Si defines una función que " a cada número le suma 3 ", entonces: f (x) = x + 3 -- f(x) = y Graficando una función matemática Ahora imaginemos que tenemos esta tablita: Función f(x) Valores de x Resultado f(x) = x + 3 2 5 f(x) = x + 3 1 4 f(x) = x + 3 0 3 f(x) = x + 3 -1 2 f(x) = x + 3 -2 1 ...