Herramientas de usuario

Herramientas del sitio


introalg:taller2

¡Esta es una revisión vieja del documento!


Clase 2

Plan para hoy

  • Repaso de algunas soluciones de la clase anterior
  • Trabajar sobre programas recursivos numéricos y con listas
  • Sintáxis de pattern matching
  • Resolución de ejercicios

Algunas soluciones de la clase anterior

A partir de la Wiki de Scripts Haskell veamos algunas soluciones presentadas

edad :: (Int, Int, Int) -> (Int, Int, Int) -> Int
edad (d, m, a) (d', m', a')	| 12 < m || 12 < m' || m < 0 || m' < 0 = error "El mes no es valido."
			| ([31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] !!(m - 1)) < d = error "El dia del mes inicial no es valido."
			| ([31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] !!(m' - 1)) < d' = error "El dia del mes final no es valido."
			| a < 0 || a' < a = error "El año inicial es menor que cero o menor que el año final."
			| a == a' && m' < m = error "Mismo año pero el mes inicial es mayor que el final."
			| a == a' && m' == m && d' < d = error "Mismo mes y año pero dia inicial mayor que el final."
			| (m' < m) || (m' == m && d' < d) = (a'-a)-1  -- No alcanza a completar un año.
			| otherwise = a'-a  -- Ningun caso especial, resta directa.

Clase

Ejercicios

introalg/taller2.1147116860.txt.gz · Última modificación: 2018/08/10 03:03 (editor externo)