introalg:taller2
¡Esta es una revisión vieja del documento!
Tabla de Contenidos
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)