¿Hay una función de biblioteca disponible en Haskell para componer una función consigo mismo n veces?Función de biblioteca para componer una función consigo mismo n veces
Por ejemplo, tengo esta función:
func :: a -> a
y yo quiero hacer esto:
func . func . func . func . func . func , ...
(hasta n tiempos, donde n sólo se conoce en tiempo de ejecución) .
Tenga en cuenta que la función iterar no sería apropiada para lo que estoy haciendo, ya que no me preocupan los resultados intermedios.
Me gusta esto porque también funciona con n == 0. –
@John Las otras soluciones ('iterate' con' !! 'o' lookup. Zip') también funcionan con n == 0. Mire la [definición de iterar] (http://haskell.org/ghc/docs /6.12.1/html/libraries/base-4.2.0.0/src/GHC-List.html#iterate) y verá que comienza la lista con el caso base. –
@TomMD tienes razón, mi error. Estaba pensando en una definición diferente usando 'iterate', que no es tan buena como la que proporcionaste. –