Tengo la siguiente consigna:
3) Dado 3 deportistas que participan en la competencia, conocer el nombre del deportista más corajudo es decir cuyo nivel de coraje sea máximo. Si dos personas se tienen el mismo nivel de coraje, se debe mostrar el nombre del que se inscribió primero. El orden en que se anotan es el orden de los parámetros.
> masCorajudo (Deportista "sara" 18 ("parkour", 0) 8) (Deportista "emilio" 21 ("bicicleta", 2) 8) (Deportista "judith" 20 ("rollers", 8) 7)
“sara”
Tambien tengo armado del punto 2 lo siguiente:
nivelCoraje (Deportista _ _ (deporte, _) _) | deporte == "bicicleta" = 80
| deporte == "rollers" = 100-15
| deporte == "skate" = 100-10
| otherwise = 100-5
La cuestion es que yo ahora estaba armando la función de a poco, pero al tirar
masCorajudo persona1 persona2 persona3 = nivelCoraje.persona1
Me tira el siguiente error:
*Main> masCorajudo (Deportista "sara" 18 ("parkour", 0) 8) (Deportista "emilio" 21 ("bicicleta", 2) 8) (Deportista "judith" 20 ("rollers", 8) 7)
<interactive>:76:14:
Couldn't match expected type ‘a -> Persona’
with actual type ‘Persona’
Relevant bindings include
it :: a -> c (bound at <interactive>:76:1)
Possible cause: ‘Deportista’ is applied to too many arguments
In the first argument of ‘masCorajudo’, namely
‘(Deportista "sara" 18 ("parkour", 0) 8)’
In the expression:
masCorajudo
(Deportista "sara" 18 ("parkour", 0) 8)
(Deportista "emilio" 21 ("bicicleta", 2) 8)
(Deportista "judith" 20 ("rollers", 8) 7)
Me parece que el problema es con los paréntesis... Necesito ayuda.