Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como haskell

Elm: creando una sencilla aplicación

Como vimos en un anterios post: Elm es un lenguaje funcional que se compila en JavaScript. Te ayuda a crear sitios web y aplicaciones web. Tiene un fuerte énfasis en la simplicidad y la calidad de las herramientas. Veremos cómo instalarlo usando Node (Npm). 1 $ npm install -g elm Listamos versión instalada: 1 $ elm --version Instalar Elm-Live: 1 $ npm install -g elm-live Instalar Elm-Format: 1 $ npm install -g elm-format Crear un proyecto: 1 2 3 $ mkdir myproject $ cd myproject $ elm init En el directorio `` src `` crear un programa `` Main.elm `` 1 2 3 4 5 6 7 8 -- Module: modulo del programa module Main exposing ( .. ) -- Imports: las importaciones import Html -- Main: funcion principal main = Html . text "¡Hola, mundo en Elm!" Construir: 1 $ elm make src/Main.elm --output = main.js Usar Elm-Live: 1 $ elm-live src/Main.elm --open Esto abrirá el navegador en la dirección: http://localhost:8000/ ¡Hemos cre...

Plutus: un lenguaje de programación del que no sabías nada

Plutus es un lenguaje de programación diseñado específicamente para escribir contratos inteligentes en la blockchain de Cardano . Características principales de Plutus Base en Haskell : Plutus está basado en Haskell, un lenguaje de programación funcional puro conocido por su robustez y seguridad matemática. Esto significa que utiliza conceptos como funciones puras, inmutabilidad y tipos fuertes, lo que reduce errores y mejora la verificabilidad del código.  Contratos inteligentes en Cardano: Plutus es el núcleo de la infraestructura de contratos inteligentes de Cardano. Permite a los desarrolladores definir lógica personalizada para transacciones en la blockchain, como acuerdos financieros, subastas o sistemas de gobernanza descentralizada.  Ejecución en dos entornos: On-chain: Una parte del código de Plutus se ejecuta directamente en la blockchain de Cardano para validar transacciones. Este código debe ser eficiente y seguro, ya que afecta el consenso de la red....

Frameworks web para Haskell

  Los frameworks web nos ayudan a: Tener una configuración y estructura base para nuestras aplicaciones. Nos ayuda a reutilizar código. Automatizar tareas tediosas y repetitivas. Mayor seguridad. Tener un desarrollo comunitario. Mejor rendimiento y escalabilidad. Facilitan las pruebas unitarias. Nos ayudan con mejores prácticas y compatibilidad con los estándares. "Un framework web puede ser una herramienta poderosa para acelerar el desarrollo, mejorar la calidad del código y la seguridad de tu aplicación, todo mientras te permite enfocarte más en la lógica de negocio de tu proyecto" . En está ocasión veremos algunos de los frameworks web para Haskell. IHP: https://ihp.digitallyinduced.com/ Snap: http://snapframework.com/ Yesod: https://www.yesodweb.com/ Cada uno de éstos framework posee sus propias características y peculiaridades. El más famoso es Yesod, el cual se basa en plantillas para generar instancias de entidades listadas y funciones de procesami...

Expresiones Lambda

Empecemos con definir qué es una expresión lambda: son una forma de crear funciones anónimas y compactas en programación . Son anónimas, no requieren un nombre explícito como las funciones tradicionales.  Se utilizan cuando necesitas una función rápida y sencilla.  No se reutilizan. Ahorran espacio en el código. Simplifican el uso de funciones en contextos donde solo se necesitan una vez, como al ordenar, mapear o filtrar listas. La sintaxis de una expresión lambda en Python es la siguiente: # Sintaxis de expresión lambda en Python lambda argumentos : expresión Podemos crear una expresión lambda que sume dos números. suma = lambda x , y : x + y La usamos de la siguiente forma: resultado = suma ( 9 , 4 ) # resultado será 13 Algunos usos de expresiones lambda Ordenar listas usando claves personalizadas. personas = [ { " nombre " : " Ana " , " edad " : 23 } , { " nombre " : " Luis " , ...

Haskell for Todos 6

Existe un libro sobre Haskell que se puede leer en la web llamado: "Real World Haskell" Escrito por Bryan O'Sullivan, Don Stewart, y John Goerzen. Para quienes gusten de querer aprenderlo (y usarlo en proyectos de la vida real). Dejamos el link al libro en los enlaces. Enlaces: https://book.realworldhaskell.org/read/

OCaml en Windows

OCaml es un lenguaje de programación: funcional de potencia industrial con énfasis en la expresividad y la seguridad. OCaml es un lenguaje de programación versátil y poderoso que combina las mejores características de la programación funcional, imperativa y orientada a objetos. Su fuerte sistema de tipos y su eficiencia lo hacen adecuado para una amplia variedad de aplicaciones, desde sistemas críticos hasta investigación académica. Hoy en día existen plugins en editores como VS Code que te permitirán escribir tus programas. En este post instalaremos OCaml en entornos Windows En un post pasado vimos como instalarlo en Linux (Ubuntu): https://alquimistadecodigo.blogspot.com/2021/04/un-vistazo-ocaml.html Abrimos una terminal y tecleamos: winget install Microsoft.VisualStudio.2019.BuildTools --override "--wait --passive --installPath C:\VS --addProductLang En-us --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended" winget install Git.Git ...

Haskell: como instalar en Windows (vídeo Youtube)

He aquí un curso sobre el lenguaje de programación funcional Haskell. En primer lugar, como se instala.

Clojure for Beginner (3)

En esta serie de post de Clojure for Beginners veremos más ejemplos. La interoperabilidad es uno de los temas que más le interesan a los programadores. Los programadores Java verán que no es una promesa, sino más bien una realidad. Clojure en verdad lo permite. Basta ver un ejemplo. Ejemplo 1 . Creamos un programa para obtener el cuadrado de un número. En este ejemplo la entrada es 12 y el cuadrado de ese número será 144. ( import ' ( javax.swing JOptionPane )) ;' ( defn introduceDato [ s ] ( JOptionPane/showInputDialog ( str s ) ) ) ( def numero ( introduceDato "Introduce numero:" )) ;;convertir String a número ( defn String->Number [ str ] ( let [ n ( read-string str )] ( if ( number? n ) n nil ))) ;;función cuadrado ( defn cuadrado [ n ] ( * n n ) ) ;;'main' del programa ( try ( JOptionPane/showMessageDialog nil , ( str "El numero introducido es: " numero ) ) ( JOptionPane/showMessageDi...

Learning Functional Programming | Erlang Solutions Webinar (vídeo en Inglés)

Vídeo: "Aprendiendo Programación Funcional". Descripción: A Erlang Solutions se une el respetado autor, investigador y profesor Simon Thompson, profesor de Lógica y Computación en la Universidad de Kent. Aquí comparte información valiosa sobre cómo aprender programación funcional, que será adecuada tanto para principiantes como para programadores experimentados. Nota: Todos los derechos a quien corresponda

Haskell for Todos 5

Con Haskell se pueden crear métodos (y tipos) de la siguiente manera: resta :: Int -> Int -> Int doble :: Int -> Int triple :: Int -> Int incremento :: Int -> Int cuadrado :: Int -> Int mayorATres :: Int -> Bool mayorACinco :: Int -> Bool obtenerMoneda :: [ String ] -> String Donde: Definimos el nombre de la función Definimos los parámetros de entrada y su tipo (Int, String, Bool, etc.) Definimos la salida y su tipo (Int, String, Bool, etc.) Ejemplo 1. Crear un programa que sume dos números. suma.hs suma :: Int -> Int -> Int suma x y = x + y {- > suma 4 3 7 > suma 2 1 3 -} Explicación: El método suma recibe dos parámetros x,y para luego hacer la suma de ambos. suma :: Int -> Int -> Int {- El método suma recibe dos parámetros x,y para luego hacer la suma de ambos -} Ejemplo 2. Crear un programa que valide si un número es...

Aprende Haskell, el lenguaje que me obligó a programar funcionalmente

La programación funcional es un paradigma de programación que trata la computación como la evaluación de funciones matemáticas y evita cambiar el estado y los datos mutables.

Haskell for Todos 4

Haskell es uno de esos lenguajes de programación que obligan al programador Java (o de cualquier otro lenguaje) a cambiar su manera de crear código y no es para menos, la programación funcional es parecida a la matemática. Con Haskell creamos funciones parecidas a las verdaderas funciones matemáticas. 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. Ejemplo. Calcular el factorial de un número. factorial 0 = 1 factorial n = n * factorial(n - 1) factorial.hs factorial :: Int -> Int factorial 0 = 1 factorial n = n * factorial(n - 1 ) Ejecutar: $ ghci > : cd RUTA_S...