Hola que tal? Tengo dudas respecto a la solución de este ejercicio que es la siguiente:
según la definición de foldl :: (b -> a -> b) -> b -> [a] -> b , la definición de fmax seía:
fmax :: b -> a -> b , siendo b del tipo (a, Int).
Viendo la solución, la función fmax recibe (x,0), 1. Entiendo que (x,0) seria del tipo b, lo que no entiendo es el 1, que a mi entender debería ser del tipo a, es decir, del tipo de un elemento de la lista.
Otra coas que no me queda claro es que foldl recibe de entrada una funcion (que es fmax), recibe un b y una lista de a. La lista de a seria xs pero no entiendo donde recibe un b.
Una última duda es porque se coloca al principio la funcion fst, ya que foldl devolvería un elemento del tipo (a, Int) que es lo que se quiere devolver al final, y no solo el primer elemento de esta tupla. Esta última duda capas está acarreada a las dudas anteriores.
Muchas gracias de ante mano!