Cursosā€Ž > ā€ŽCursadas Anterioresā€Ž > ā€Ž2019ā€Ž > ā€ŽMaƱ-Viernesā€Ž > ā€ŽBitacoraā€Ž > ā€Ž

Marzo 29

publicado a laā€Ž(s)ā€Ž 29 mar 2019 8:07 por Lucas Spigariol
Introducción a Funcional
Funciones - Pattern Matching - Tipos de datosĀ 
Tarea para hacer:
- practicar (guias de ejercicios, mumuki, inventar casos)
- leer "guardas" (funciones definidas por partes)
- curiosear manejo de Git (ver apunte)
- ir pensando los grupos

Ejemplos
miPrimerFuncion = "hola, ya se programacion funcional!!!!"

miSegundaFuncion algo = esImportante algo

esImportante 34 = True
esImportante 23 = True
esImportante 7 = False
esImportante palabra = True

funcionLoca x 0 = 0
funcionLoca x y = x + y*y -1

funcionMasLoca x y = funcionLoca x (length y)Ā 

juntoTodo nro = esImportante (funcionMasLoca nro miPrimerFuncion)

Ejercicios
--1) esPar
--esPar nro = even nro
--esPar nro = (mod nro 2) == 0

esPar 0 = True
esPar 1 = False
esPar nro = esPar (nro - 2)

-- 2) esVocal 'a'Ā 
esVocal 'a' = True
esVocal 'e' = True
esVocal 'i' = True
esVocal 'o' = True
esVocal 'u' = True
esVocal letra = False

--esVocal letra = elem letra "aeiouAEIOU"

-- 3) fibonacci
fibonacci 0 = 1
fibonacci 1 = 1
fibonacci nro = fibonacci (nro-1) + fibonacci (nro-2)

--4) paso (1,2) "arriba"
--(1,3)

-- 5) mover (1,2) "arriba" 4
-- (1,6)

mover (x,y) "arriba" cantidad = (x, y + cantidad)
mover punto "abajo" cantidad = mover punto "arriba" (-cantidad)
mover (x,y) "izquierda" cantidad = (x + cantidad, y )
mover punto "derecha" cantidad = mover punto "izquierda" (-cantidad)

paso punto direccion = mover punto direccion 1

--mover punto direccion cantidad = mover (paso punto direccion) direccion (cantidad -1)

--6) palindromo (capicua)
palindromo lista = lista == reverse lista

--7) el que se les ocurra
esVacia [] = True
esVacia lista = False

longitud [] = 0
longitud (cabeza:cola) = longitud cola + 1