ScheffelaarGerman / EstrD2024s2

0 stars 0 forks source link

tp-1 ver superaA #6

Closed SergioMartellotti closed 3 weeks ago

SergioMartellotti commented 4 weeks ago

superaA :: Pokemon -> Pokemon -> Bool superaA (ConstPokemon Agua ) (ConstPokemon Fuego ) = True superaA (ConstPokemon Fuego ) (ConstPokemon Planta ) = True superaA (ConstPokemon Planta ) (ConstPokemon Agua ) = True superaA (ConstPokemon ) (ConstPokemon ) = False

Esto que haces es doble pattern matching, no está permitido abrir dos registros o estructuras de datos en un mismo caso. Lo que deberías hacer es usar funciones observadoras. Una en particular a la que le envias un pokemon y te devuelve su tipo.

superaA poke1 poke2 = tipoSuperaATipo (tipoDe poke1) (tipoDe poke2)

Y además, como ves, hay que hacer una subtarea para que toda la responsabilidad no le quede a superaA.