Herramientas de usuario

Herramientas del sitio


introalg:taller2

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:taller2 [2006/05/09 13:02] nicolaswintroalg:taller2 [2018/08/10 03:03] (actual) – editor externo 127.0.0.1
Línea 20: Línea 20:
   * No se usaron **definiciones locales** para la función de cálculo de área.   * No se usaron **definiciones locales** para la función de cálculo de área.
  
-Se aprende muchísimo //leyendo detenidamente código bien escrito//.+** Se aprende muchísimo //leyendo detenidamente código bien escrito// **
  
 ===== Clase ===== ===== Clase =====
Línea 31: Línea 31:
   Definir la función cabeza:[A]->A que devuelve el primer elemento de la lista.   Definir la función cabeza:[A]->A que devuelve el primer elemento de la lista.
  
-Por ejemplo ''cabeza [4,3,2]'' reduce a la //forma canónica// '2'.+Por ejemplo ''cabeza [4,3,2]'' reduce a la //forma canónica// '4'.
  
 El mecanismo básico para poder **destruir** una lista en partes es el //pattern matching//, que podemos pensarlo como una definición por casos, que es capaz de dividir la lista en su **cabeza** y **cola** El mecanismo básico para poder **destruir** una lista en partes es el //pattern matching//, que podemos pensarlo como una definición por casos, que es capaz de dividir la lista en su **cabeza** y **cola**
Línea 62: Línea 62:
   ceroOuno x = False   ceroOuno x = False
  
-Ahora tomemos el ejercicio 10 del Práctico 8.+ 
 +==== Programas Recursivos ==== 
 + 
 +Tomemos el ejercicio 10 del Práctico 8.
  
   Defina la función duplicar::[Num]->[Num] que dada una lista duplica cada uno de sus elementos.   Defina la función duplicar::[Num]->[Num] que dada una lista duplica cada uno de sus elementos.
Línea 69: Línea 72:
 Usamos un planteamiento //inductivo o recursivo// y //pattern matching// para Usamos un planteamiento //inductivo o recursivo// y //pattern matching// para
   * Definir un **caso base** (lista vacía ''[]'')   * Definir un **caso base** (lista vacía ''[]'')
-  * Definir el **caso inductivo** (la lista tiene al menos un elemento, siendo el primero 'x' y el resto de la lista 'xs')+  * Definir el **caso inductivo** (la lista tiene al menos un elemento, siendo el primero ''x'' y el resto de la lista ''xs'')
  
   duplicar :: [Int] -> [Int]   duplicar :: [Int] -> [Int]
Línea 130: Línea 133:
   * (P8-E12) Defina la función promedio //promedio:[Num] -> Num// que dada una lista de números, calcule su promedio.   * (P8-E12) Defina la función promedio //promedio:[Num] -> Num// que dada una lista de números, calcule su promedio.
   * (P8-E16) (*) c) Modificar la guarda de ''n>m'' en ''desdeHasta'' para que si esto pasa retorne la lista descendente.   * (P8-E16) (*) c) Modificar la guarda de ''n>m'' en ''desdeHasta'' para que si esto pasa retorne la lista descendente.
- 
introalg/taller2.1147179772.txt.gz · Última modificación: 2018/08/10 03:03 (editor externo)