Copyright | Exercitium (30-05-14) |
---|---|
License | GPL-3 |
Maintainer | JoseA.Alonso@gmail.com |
Safe Haskell | None |
Language | Haskell2010 |
Reiteracion_de_funciones
Description
Reiteración de una función
Definir la función
reiteracion :: Int -> (a -> a) -> a -> a
tal que (reiteracion n f x) es el resultado de aplicar n veces la función f a x. Por ejemplo,
>>>
reiteracion 10 (+1) 5
15>>>
reiteracion 10 (+5) 0
50>>>
reiteracion 4 (*2) 1
16>>>
reiteracion 4 (5:) []
[5,5,5,5]
Comprobar con QuickCheck que se verifican las siguientes propiedades
reiteracion 10 (+1) x == 10 + x reiteracion 10 (+x) 0 == 10 * x reiteracion 10 (x:) [] == replicate 10 x
- reiteracion :: Int -> (a -> a) -> a -> a
- reiteracion2 :: Int -> (a -> a) -> a -> a
- reiteracion3 :: Int -> (a -> a) -> a -> a
- prop_equiv_reiteracion :: Positive Int -> Fun Int Int -> Int -> Bool
- prop_reiteracion :: Int -> Bool
Documentation
reiteracion :: Int -> (a -> a) -> a -> a Source #
1ª definición (por recursión).
reiteracion2 :: Int -> (a -> a) -> a -> a Source #
2ª definición (por recursión sin el 3ª argumento).
reiteracion3 :: Int -> (a -> a) -> a -> a Source #
3ª definición (con iterate
).
prop_equiv_reiteracion :: Positive Int -> Fun Int Int -> Int -> Bool Source #
Comprobación de la equivalencia de las definiciones de
reiteracion
.
>>>
quickCheck prop_equiv_reiteracion
+++ OK, passed 100 tests.
prop_reiteracion :: Int -> Bool Source #
Comprobación de propiedades.
>>>
quickCheck prop_reiteracion
+++ OK, passed 100 tests.