Herramientas de usuario

Herramientas del sitio


introalg:taller08_6

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
introalg:taller08_6 [2008/06/03 12:14] lauraintroalg:taller08_6 [2018/08/10 03:03] (actual) – editor externo 127.0.0.1
Línea 69: Línea 69:
  
 En el caso concreto de Haskell, este tipo de optimización no es especialmente eficiente, por la forma como funciona Haskell, sin embargo, esta estrategia dá muy buena optimización para otros lenguajes. En el caso concreto de Haskell, este tipo de optimización no es especialmente eficiente, por la forma como funciona Haskell, sin embargo, esta estrategia dá muy buena optimización para otros lenguajes.
 +
  
  
 ===== Tipos definidos por el usuario ===== ===== Tipos definidos por el usuario =====
  
 +Para este apartado vamos a usar las filminas de [[http://www.lcc.uma.es/~pacog/|Paco Gutiérrez]] sobre [[http://www.lcc.uma.es/~pacog/apuntes/pd/cap04.pdf|definiciones de tipo]] y [[http://www.lcc.uma.es/~pacog/apuntes/pd/cap05.pdf|el sistema de clases de Haskell]].
  
 +===== Ejercicios de repaso =====
  
-Existen  
- 
- 
- 
-Main> :t (==) 
-(==) :: Eq a ⇒ a → a → Bool 
-Main> :t (+) 
-(+) :: Num a ⇒ a → a → a  
- 
- 
-===== Ejercicios de repaso ===== 
  
 ==== Recursión en dos argumentos ==== ==== Recursión en dos argumentos ====
Línea 95: Línea 87:
 * Definir la función //combina :: Ord a => [a] -> [a] -> [a]//, que dadas dos listas nos devuelve una lista que combina las dos anteriores con sus elementos ordenados de menor a mayor. Implementen diferentes estrategias para obtener los elementos ordenados: ordenar las listas de antemano y después combinarlas (en una estrategia similar a //encuentraEstafador''//), ordenar la lista resultante, o comprobar si están ordenadas. * Definir la función //combina :: Ord a => [a] -> [a] -> [a]//, que dadas dos listas nos devuelve una lista que combina las dos anteriores con sus elementos ordenados de menor a mayor. Implementen diferentes estrategias para obtener los elementos ordenados: ordenar las listas de antemano y después combinarlas (en una estrategia similar a //encuentraEstafador''//), ordenar la lista resultante, o comprobar si están ordenadas.
  
 +* Definir la función //eliminaDuplicados :: [a] -> [a]//, que elimina los elementos duplicados de una lista.
 +
 +* Definir la función //fusiona :: Ord a => [a] -> [a] -> [a]//, que dadas dos listas nos devuelve una lista que combina las dos anteriores con sus elementos ordenados de menor a mayor, sin duplicados.
 +
 +* Definir la función //esPalindromo :: [a] -> Bool//, que dada una lista nos dice si es un palíndromo, es decir, si es igual leída de izquierda a derecha que de derecha a izquierda.
 +
 +* Definir la función //divideEnDos :: Int -> [a] -> ([a],[a])//, que divide una lista en dos, donde la longitud de la primera viene dada por el primer argumento de la función.
  
introalg/taller08_6.1212495279.txt.gz · Última modificación: 2018/08/10 03:03 (editor externo)