Buenas,
Quería consultar acerca de la implementación de la función sucesor con el uso de foldr.
Conseguí calcular el sucesor en la amplia mayoría de los casos pero sucede que mi función falla en el siguiente caso:
sucesor [9, 9, 9, 9] = [0, 0, 0, 0]
o cualquiera de este tipo donde todos los dígitos de la representación son 9s.
Para tener en cuenta este caso, la función debería agregar un dígito 1 adicional al resolver la última llamada recursiva sobre la lista, solamente cuando el último dígito pasa de 9 a 10 (que termina siendo 0 por el cálculo (digito + 1) `rem` 10).
¿Debemos tener en cuenta este caso para el ejercicio?
En caso afirmativo, ¿puede lograrse esta implementación con la función foldr?
Gracias por cualquier respuesta.