Permalink
Browse files

Add files via upload

  • Loading branch information...
AgustinCardozo committed Sep 14, 2018
1 parent 94dd906 commit 800b516ddb730314ff4f394e4aee453de2dbe68c
Binary file not shown.
View
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,111 @@
type ListaDeCaracters = [String]
data Tendencia = Tendencia {
apellidosIlustres :: ListaDeCaracters,
adjetivos :: ListaDeCaracters,
sustantivos :: ListaDeCaracters
} (Show,Eq)
nuevosSustantivos unosSustantivos unaTendencia = unaTendencia { sustantivos = unosSustantivos }
nuevosApellidos unosApellidos unaTendencia = unaTendencia { apellidosIlustres = unosApellidos}
noTieneMasDeUnApellido unaTendencia = (not.(>1).lenght.apellidosIlustres) unaTendencia
sumatoriaDeCantidadDeCaracteresDe lista = (sum.(map lenght)) lista
tieneMasDelDoble unaTendencia = ((*2).sumatoriaDeCantidadDeCaracteresDe.adjetivos) unaTendencia < (sumatoriaDeCantidadDeCaracteresDe.adjetivos) unaTendencia
esVendeHumo unaTendencia = noTieneMasDeUnApellido unaTendencia || tieneMasDelDoble unaTendencia
dejarAfueraAlMasAntiguo lista = take (((-1).lenght) lista)lista
listaSin unaPalabra lista = filter ( nombreQueEmpiezaCon unaPalabra ) lista
modernizar unaTendencia = ((nuevosSustantivos ( (listaSin "memoria").sustantivos)).nuevosApellidos (dejarAfueraAlMasAntiguo (apellidosIlustres unaTendencia))) unaTendencia
type Prejuicios = [Prejuicio]
data Politicos = Politicos {
nombre::String,
apellido::String,
tendenciaPolitica::Tendencia,
prejuicios::Prejuicios,
} (Show,Eq)
nuevoDiscurso unDiscurso unPolitico = unPolitico {discurso = unDiscurso}
data Prejuicio = Prejuicio {
tema :: String,
porcentaje :: Int
} (Show,Eq)
nombreQueEmpiezaCon unCaracter lista = ((== unCaracter ).(take 1)) lista
nombreQueEmpiezaCon listaDeCaracters lista = any elem listaDeCaracters lista
firma titulo unPolitico = titulo ++ nombre unPolitico ++ " " ++ apellido unPolitico
obtenerFirma unPolitico | nombreQueEmpiezaCon.nombre unPolitico = firma "Ing. " unPolitico
| nombreQueEmpiezaCon.nombre unPolitico = firma "Dr. " unPolitico
viveDeSuFamilia unPolitico = (any (== apellido unPolitico) (apellidosIlustres.tendenciaPolitica)) unPolitico
cantDePrejuicios unPolitico = (length.prejuicios) unPolitico
todosLosElementosSonMayoresA numero lista = all (>numero) lista
odiaAlaSociedadModerna unPolitico = ( >= 5)cantDePrejuicios unPolitico && todosLosElementosSonMayoresA 50 (prejuicios unPolitico)
obtenerPrimerosNAdjetivosDe n unPolitico = ((take n).adjetivos.tendenciaPolitica) unPolitico
agregarAlFinal elementos lista = lista ++ elementos
duranBigote unDiscurso unPolitico = filter ((<= 10).length) (agregarAlFinal (obtenerPrimerosNAdjetivosDe 5 unPolitico) unDiscurso)
juanConfeconesperanza unDiscurso unPolitico = map (flip (agregarTerminoSiCorresponde unPolitico)) (unApellidoIlustreDeUnPolitico unPolitico ++ unDiscurso )
unApellidoIlustreDeUnPolitico unPolitico = ((take 1).apellidosIlustres.tendenciaPolitica) unPolitico
agregarTerminoSiCorresponde unSustantivo unPolitico | elem unSustantivo (sustantivos.tendenciaPolitica) unPolitico = "Emotivo " ++ unSustantivo
| otherwise = unSustantivo
elTanque unPolitico unDiscurso = unDiscurso
salierisDelDiego cantDeEs unDiscurso | any ((<5).length) unDiscurso = map (++"e") unDiscurso
| otherwise = unDiscurso
chupaMedias unDiscurso unPolitico | viveDeSuFamilia unPolitico = apellido unPolitico ++ [" "] ++ unDiscurso
| otherwise = unDiscurso
originalidadCero asesor unDiscurso = asesor.asesor unDiscurso
presentarBoceto asesor unPolitico unDiscurso = asesor unPolitico unDiscurso
presentarBocetoAvarios asesores unDiscurso unPolitico = foldl (presentarBoceto unPolitico) discurso asesores
unAsesorModificaVariosDiscursos asesor discursosAlternativos unPolitico = map (presentarBoceto asesor unPolitico) discursosAlternativos
elDiscursoMasBreve asesores discursosAlternativos unPolitico = (maximum.(map (flip(unAsesorModificaVariosDiscursos adiscursosAlternativos unPolitico)))) asesores
elAsesorConElDiscursoMasBreve asesores discursosAlternativos unPolitico =
--
--
--
-- teoria: si tuviera una lista infinita de asesores no podria hacer un discurso porque el fold nunca terminaria de recorrer la lista para
-- aplicarsela al discurso, va a hacer un loop infinito porque no es perezoso.
-- si tuviera una lista infinita de sustantivos serviria solo en las funciones que la utilicen sean perezosas y sepan cuando cortar y retornar el valor.
-- el concepto se llama evaluacion diferida.
View
Binary file not shown.

0 comments on commit 800b516

Please sign in to comment.