Los números racionales pueden representarse mediante pares de números enteros. Por ejemplo, el número 2/5 puede representarse mediante el par (2,5).
Definir las funciones
formaReducida :: (Int,Int) -> (Int,Int)
sumaRacional :: (Int,Int) -> (Int,Int) -> (Int,Int)
productoRacional :: (Int,Int) -> (Int,Int) -> (Int,Int)
igualdadRacional :: (Int,Int) -> (Int,Int) -> Bool
tales que
-
formaReducida x
es la forma reducida del número racional x
. Por ejemplo,
formaReducida (4,10) == (2,5)
formaReducida (0,5) == (0,1)
-
sumaRacional x y
es la suma de los números racionales x
e y
, expresada en forma reducida. Por ejemplo,
sumaRacional (2,3) (5,6) == (3,2)
sumaRacional (3,5) (-3,5) == (0,1)
-
productoRacional x y
es el producto de los números racionales x
e y
, expresada en forma reducida. Por ejemplo,
productoRacional (2,3) (5,6) == (5,9)
-
igualdadRacional x y
se verifica si los números racionales x
e y
son iguales. Por ejemplo,
igualdadRacional (6,9) (10,15) == True
igualdadRacional (6,9) (11,15) == False
igualdadRacional (0,2) (0,-5) == True
Comprobar con QuickCheck la propiedad distributiva del producto racional respecto de la suma.
Leer más…