Skip to content

Instantly share code, notes, and snippets.

@gpratoe
gpratoe / soluciones.hs
Created April 27, 2021 04:00
Soluciones ejercicios Haskell mumuki UNC (11. Práctica Recursividad) - https://mumuki.io/introalgo-unc/lessons/196-programacion-funcional-practica-recursividad
--Ejercicio 1: fibonacci
fibonacci 1 = 1
fibonacci 2 = 1
fibonacci x = fibonacci (x-1) + fibonacci(x-2)
--Ejercicio 2: pertenece
pertenece [] x = False
pertenece (x:xs) num = (num==x) || pertenece xs num
--Ejercicio 3: interseccion
@gpratoe
gpratoe / soluciones.hs
Created April 27, 2021 03:51
Soluciones ejercicios Haskell mumuki UNC (10. Recursividad) - https://mumuki.io/introalgo-unc/lessons/194-programacion-funcional-recursividad
--Ejercicio 2: La historia sin fin
infinitosUnos = [1]++infinitosUnos
--Ejercicio 4: ¡Terminala! Parte 2
sumatoria :: Num a => [a] -> a
sumatoria [] = 0
sumatoria lista = head lista + sumatoria (tail lista)
--Ejercicio 5: El caso base
longitud [] = 0
@gpratoe
gpratoe / soluciones.hs
Created April 27, 2021 03:48
Soluciones ejercicios Haskell mumuki UNC (9. Práctica Listas) - https://mumuki.io/introalgo-unc/lessons/193-programacion-funcional-practica-listas
--Ejercicio 1: sumarSegun
sumarSegun :: (a->Int)->[a]->Int
sumarSegun fun = ((sum).(map fun))
--Ejercicio 2: alguno
alguno :: (a -> Bool)-> [a] -> Bool
alguno cond list = filter cond list /= []
--Ejercicio 3: esCapicua
esCapicua list = concat list == reverse (concat list)
--Ejercicio 4: algunosTuits
algunosTuits :: [a] -> [a]
algunosTuits = take 3
--Ejercicio 7: El tipo de map
nuestroMap :: (b->a)->[b] -> [a]
--Ejercicio 8: Textos
textos :: [(String, String)] -> [String]
textos = map snd
@gpratoe
gpratoe / soluciones.hs
Created April 24, 2021 06:17
Soluciones ejercicios Haskell mumuki UNC (7. Alternativas: Guardas y Patrones) - https://mumuki.io/introalgo-unc/lessons/191-programacion-funcional-alternativas-guardas-y-patrones
--Ejercicio 1: Guardas: Básico
minimoEntre x y | x <= y = x
| y <= x = y
--Ejercicio 2: Otherwise
cantidadDePochoclosParaMinutosDeCine minutos | minutos < 40 = 2
| minutos > 200 = 10
| otherwise = ceiling (minutos / 20)
--Ejercicio 3: Orden de las Condiciones
@gpratoe
gpratoe / soluciones.hs
Created April 24, 2021 06:12
Soluciones ejercicios Haskell mumuki UNC (6. Práctica Aplicación Parcial y Orden Superior) - https://mumuki.io/introalgo-unc/lessons/190-programacion-funcional-practica-aplicacion-parcial-y-orden-superior
--Ejercicio 1: esMultiploDe
esMultiploDe y =(==0).(rem) y
--Ejercicio 2: esBisiesto
esBisiesto :: Int -> Bool
esBisiesto x = (((esMultiploDe x 400)||).(esMultiploDe x 4 &&).(not.esMultiploDe x))100
--Ejercicio 3: dobleDelLargo
dobleDelLargo = (*2).length
@gpratoe
gpratoe / soluciones.hs
Created April 24, 2021 05:52
Soluciones ejercicios Haskell mumuki UNC (5. Aplicación Parcial y Orden Superior) - https://mumuki.io/introalgo-unc/lessons/189-programacion-funcional-aplicacion-parcial-y-orden-superior
--Ejercicio 4: Aplicación Parcial, Parte 2
dobleDelSiguiente = (*2).(+1)
--Ejercicio 5: Un saludo superior, Parte 1
saludar nombre = "Hola " ++ nombre
--Ejercicio 6: Un saludo superior, parte 2
saludar pref nombre = "Hola " ++ pref ++ " " ++ nombre
--Ejercicio 7: Un saludo superior, Parte 3
@gpratoe
gpratoe / soluciones.hs
Created April 21, 2021 22:59
Soluciones ejercicios Haskell mumuki UNC (4. Práctica de Inferencia de Tipos) - https://mumuki.io/introalgo-unc/lessons/188-programacion-funcional-practica-de-inferencia-de-tipos
--Ejercicio 1: mitad
mitad :: Float -> Float
mitad numero = numero / 2
--Ejercicio 2: esParO
esParO :: Int -> Bool -> Bool
esParO numero condicion = even numero || condicion
--Ejercicio 3: sumarDos
sumarDos :: Num a => a-> a
@gpratoe
gpratoe / soluciones.hs
Created April 21, 2021 22:52
Soluciones ejercicios Haskell mumuki UNC (3. Introducción a los Tipos de Datos) - https://mumuki.io/introalgo-unc/lessons/187-programacion-funcional-introduccion-a-los-tipos-de-datos
--Ejercicio 4: Un poco más de inferencia
tipoDeXEnEsAdulta = "numero"
tipoDeRetornoEnEsAdulta = "booleano"
tipoDeXEnEsVacio = "string"
tipoDeRetornoEnEsVacio = "booleano"
--Ejercicio 6: Inferencia y composición, revisada
largoEsPar :: String -> Bool
largoEsPar = even.length
@gpratoe
gpratoe / soluciones.hs
Created April 21, 2021 15:48
Soluciones ejercicios Haskell mumuki UNC (2.Práctica Valores y Funciones) - https://mumuki.io/introalgo-unc/lessons/224-programacion-funcional-practica-valores-y-funciones
--Ejercicio 1: siguiente
siguiente x = x+1
--Ejercicio 2: mitad
mitad x = x/2
--Ejercicio 3: inversa
inversa x = (1/x)
--Ejercicio 4: esNumeroPositivo