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/05 16:17] lauraintroalg:taller08_6 [2018/08/10 03:03] (actual) – editor externo 127.0.0.1
Línea 77: Línea 77:
  
 ===== Ejercicios de repaso ===== ===== Ejercicios de repaso =====
 +
  
 ==== Recursión en dos argumentos ==== ==== Recursión en dos argumentos ====
  
 * Definir la función //segmentoInicial :: Int -> [a] -> [a]//, que dado un natural //n// y una lista //[a]//, devuelve los //n// primeros elementos de la lista. * Definir la función //segmentoInicial :: Int -> [a] -> [a]//, que dado un natural //n// y una lista //[a]//, devuelve los //n// primeros elementos de la lista.
 +
 * Definir la función //subsegmento :: Int -> Int -> [a] -> [a]//, que dados dos naturales //i// y //j//, devuelve el segmento de la lista que se encuentra entre las posiciones //i// y //j// de la lista, ambos inclusive. Para ello, usar la función //segmentoInicial// y una modificación de la función //nesimo//. * Definir la función //subsegmento :: Int -> Int -> [a] -> [a]//, que dados dos naturales //i// y //j//, devuelve el segmento de la lista que se encuentra entre las posiciones //i// y //j// de la lista, ambos inclusive. Para ello, usar la función //segmentoInicial// y una modificación de la función //nesimo//.
 +
 * 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 //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 //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 //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. * 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.1212682621.txt.gz · Última modificación: 2018/08/10 03:03 (editor externo)