Tema

[RESUELTA] Práctica 6 (Funcional Básica)

10 respuestas 11474 visitas

ahí van mis resoluciones a los ejercicios de la práctica 6. si ven algo que está mal o tienen alguna sugerencia para mejorarlas comenten! las probé con un par de valores, y a ojo deberían funcionar, pero no fui mucho más riguroso que eso. saludos!

RESOLUCIONES

el 7 quedó medio desorganizado, lo subí tal cual lo fui resolviendo, y hay algunas funciones auxiliares, pero con buena voluntad se entiende.

Editado 1 vez.

Buen aporte che, gracias!
El 6 me salio un poco mas cortito:
divPorTres::Int->Bool
divPorTres x = sumDigitos x mod 3 == 0

sumDigitos::Int->Int
sumDigitos 0 = 0
sumDigitos x = (x mod 10) + sumDigitos(x div 10)

Como anduvo el TP?

(Nota al margen: no pude evitar ver lo copado q te quedo el user en el sistema del depto : "jedi" xD )

una cosita en el ejercicio 5 (que es el unico que vi hasta ahora)
cuando pones eleva n m = n * (eleva n (m - 1))
no sera eleva n m = n ^ (eleva n (m - 1))

y otra cosa, eso me funco, pero el problema lo tengo con la especificacion, a alguien se le ocurrio?

Gracias
Pablo B

Nico: buenísimo lo de la suma de los digitos! lo compliqué un poco me parece! Y con respecto al TP, aprobamos con 6 (!!!!) estuvieron duros con las correcciones, no? yo pensaba que íbamos a hacer historia con ese trabajo jaja.

pablob: gracias, tenés razón. ya subí la corrección con los créditos correspondientes 😄

Si, a mi tambien me sorprendio lo duro de las correcciones... y nosotros no tuvimos la suerte de aprobar =(

nos tampoco..... q mala leche.. .estubimos ahi!

Firma

111dz1.gif

Pregunta, a alguien le funciono el Deriving como se debe???? ami no me lo toma, me da error, si alguien sabe como se usa, me lo explica please!!

pablob escribió:

Pregunta, a alguien le funciono el Deriving como se debe???? ami no me lo toma, me da error, si alguien sabe como se usa, me lo explica please!!

A mí me funcionó... fijate en las resoluciones esas que subí (ejercicios 7 y 8 sobre todo) y tratá de correrlas con el hugs. Te deberían andar bien. Tal vez lo pusiste sin indentar y por eso no agarra.

Cualquier cosa decime (aunque no sé nada jaja).

Che yo el del punto 7, pra "igual" lo hice mucho mas simple,no c si estara bien,calculo q si...lo probé bastante =P

igual::Nat->Nat->Bool

igual n h | suc(n) == suc(h) = True
| otherwise = False

Firma

Pape Trataremos de buscarle una solución más útil que el famoso "reinicie el equipo y vea si mejora"

Pape escribió:

Che yo el del punto 7, pra "igual" lo hice mucho mas simple,no c si estara bien,calculo q si...lo probé bastante =P

igual::Nat->Nat->Bool

igual n h | suc(n) == suc(h) = True
| otherwise = False

Pape la verdad que hice copy paste y no me funcionó. Tal vez hiciste deriving del Eq y así funcionaba (no lo probé).

El tema es que para el tipo Nat a priori no tenés definida la igualdad del ==, y la idea del ejercicio me parece que es justamente definirla más allá de que sean los mismos constructores con los mismos parámetros (que supongo es lo que haría el Eq regular).

No sé, tal vez estoy chamuyando 😄
Estaría bueno que alguien más de su opinión porque no estoy seguro.

hola. Trate de abrir el link pero me dice:Lo sentimos, pero la página no existe…
Puede ser por que cambiaron el server de la pagina? Gracias y perdon por las molestias.
P.d😛asa lo mismo en otros links del foro a paginas del dc.