Sunteți pe pagina 1din 2

Universidad Tecnológica Nacional Paradigmas de Programación

Facultad Regional Tucumán Trabajo Práctico Nº 1 – Ciclo 2019


U.T.N.- F.R.T.

Tema: Paradigma Funcional Haskell


Objetivos: Introducción. Lenguaje Haskell 98. Conceptos básicos, características. La biblioteca Prelude. Cálculo
Lambda.

1. Defina funciones recursivas para:

• producto de una lista de números


• el mayor de una lista de números
• eliminar los elementos repetidos de una lista
• Dada una lista la cual posee sublistas de digitos, si pide una funcion que concatene las sublistas y
devuelva una sola lista con todos los elementos. Eliminar repetidos.
• para separar de un String las vocales.
vocales::String->String
> vocales "Paradigmas"
> “aaia”
• Definir listas por compresión desde la línea de comando. Utilizar una lista [1..10], para encontrar
solución a los siguientes resultados:

a) [(11,12),(13,14),(15,16),(17,18),(19,20)]

b) [11,12,13,14,15,16,17,18,19,20]

c) [True,False,True,False,True,False,True,False,True,False]

d) [(3,True),(6,True),(9,True),(12,False),(15,False),(18,False)]

• Devolver una lista de números primos de 1 a n: Para ello debemos crear nuestra función para saber si
un número es primo o no y después la aplicamos a la lista por comprensión, de la siguiente forma:

> primos 100


[1,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97]

2. Resolver

1. Dado un número entero determinar la cantidad de dígitos. Ej. 34567 ---> 5 dígitos

2. Dado un número entero invertir el mismo. Ej. 34567 ---> 76543

3. Dado un número entero sumar los elementos del mismo. Ej. 34567 --- > 25

4. Dado un número entero, verificar si es capicúa. Ej. 1221  True ; 1235- False

5. Función que transforme una lista de números de la siguiente forma:


Los impares los eleve al cuadrado y a los pares le reste uno. Ej
Universidad Tecnológica Nacional Paradigmas de Programación
Facultad Regional Tucumán Trabajo Práctico Nº 1 – Ciclo 2019
U.T.N.- F.R.T.

> fun [1,2,3,4]


[1,1,9,3]

6. Explique el funcionamiento de una función que resuelva el juego de Torre de Hanoi. Puede encontrar
el código de la función en Internet.

7. Realice una función desplazar tal que (desplazar n xs) es la lista obtenida poniendo los n primeros
elementos de xs al final de la lista. Ej

> desplazar 3 [1,2,3,4]

> [4,1,2,3]

3. Problema a resolver

• Contamos con una base de datos de películas representada con una lista de tuplas. Cada tupla
contiene la siguiente información: (<Nombre de la película>, <Año de estreno>,<Duración de la
película>,<Nombre del director>). Observamos entonces que el tipo de la tupla que representa cada
película es (String, Int, Int, String).

a) Definir la función verTodas : [(String, Int, Int, String)] → Int que dada una lista de películas devuelva
el tiempo que tardaría en verlas a todas.

b) Definir la función estrenos: [(String, Int, Int, String)] → [String] que dada una lista de películas
devuelva el listado de películas que estrenaron en 2016.

• Programe una función similar a map, pero que aplique dos funciones a cada elemento de la lista:

> fun cuadrado siguiente [1,2,3,4]

> [4,9,16,25]

EQUIPO DE TRABAJO

Nº DIVISIÓN: PROFESOR: FECHA DE ENTREGA


GRUPO AUXILIAR:

LEGAJO APELLIDO Y NOMBRE FIRMA

S-ar putea să vă placă și