Skip to content

Instantly share code, notes, and snippets.

@HiroNakamura
Created April 11, 2026 02:09
Show Gist options
  • Select an option

  • Save HiroNakamura/8c76a1e824f6f7207220ffd3c072bb4d to your computer and use it in GitHub Desktop.

Select an option

Save HiroNakamura/8c76a1e824f6f7207220ffd3c072bb4d to your computer and use it in GitHub Desktop.
Gren: un lenguaje de programación funcional

Gren

Programando en Gren

Gren

Instalación con npm:

 $ npm install -g gren-lang

Creando proyecto:

$ mkdir demo-gren
$ cd demo-gren
$ gren init -y

Compilación:

$ gren make Main

Esto nos creará un archivo index.html el cual abriremos con un navegador

module Main exposing (..)
import Html exposing (Html, text)
import String
-- Tipo para el resultado
type alias Resultado =
{ futuro : Float
, extra : Float
}
-- Potencia para Float con exponente entero
powFloat : Float -> Int -> Float
powFloat base exp =
if exp == 0 then
1
else
base * powFloat base (exp - 1)
-- Función que calcula el monto futuro y el extra
calcular : Float -> Float -> Int -> Resultado
calcular presente tasa periodo =
let
tasaDecimal =
tasa / 100
futuro =
presente * powFloat (1 + tasaDecimal) periodo
extra =
futuro - presente
in
{ futuro = futuro, extra = extra }
-- Ejemplo de uso: mostramos resultados como HTML
main : Html msg
main =
let
presente = 1000.0
tasa = 5.0
periodo = 12
resultado =
calcular presente tasa periodo
salida =
"Monto a pagar: " ++ String.fromFloat resultado.futuro
++ "\nExtra a pagar: "
++ String.fromFloat resultado.extra
in
text salida
module Main exposing (main)
import Html
main =
Html.text "Hola, mundo en Gren"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment