Closed SergioMartellotti closed 3 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.
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.