es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para hacer que la función doItX funcione correctamente para cualquier valor de x, necesitamos cambiar la llamada recursiva para aplicar f solo una vez a a, en lugar de dos veces. Esto se puede lograr pasando una versión modificada de a a la función que combina a consigo misma usando f. Aquí está el código corregido:

    doItX :: (a -> a -> a) -> a -> Int -> a
    doItX f a x
      | x == 1 = a
      | x > 1  = let a' = f a a in doItX f a' (x-1)
    

    Con esta modificación, la función aplicará correctamente f x veces en a, independientemente del valor de x. Los ejemplos dados en el enunciado ahora producirán los resultados esperados.

Comments are closed.