Números racionales
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 xes la forma reducida del número racionalx. Por ejemplo,
formaReducida (4,10) == (2,5) formaReducida (0,5) == (0,1)
-
sumaRacional x yes la suma de los números racionalesxey, expresada en forma reducida. Por ejemplo,
sumaRacional (2,3) (5,6) == (3,2) sumaRacional (3,5) (-3,5) == (0,1)
-
productoRacional x yes el producto de los números racionalesxey, expresada en forma reducida. Por ejemplo,
productoRacional (2,3) (5,6) == (5,9)
-
igualdadRacional x yse verifica si los números racionalesxeyson 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.



