X-Git-Url: https://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FRealFunction.hs;h=6a557a9f0f4d4bdb33df42485d84ae02e57cabe5;hb=58cf11569acb270995d2de924dda03ef526647e2;hp=834c27a7c0a7fa5b811daeaaa6de1caf5ca62664;hpb=f07f76b231a3df623aab8b6035ac6000ce2a5eb2;p=spline3.git diff --git a/src/RealFunction.hs b/src/RealFunction.hs index 834c27a..6a557a9 100644 --- a/src/RealFunction.hs +++ b/src/RealFunction.hs @@ -6,12 +6,22 @@ where type RealFunction a = (a -> Double) + +-- | A 'Show' instance is required to be a 'Num' instance. instance Show (RealFunction a) where - show _ = "Real Function" + -- | There is nothing of value that we can display about a + -- function, so simply print its type. + show _ = "RealFunction" + +-- | An 'Eq' instance is required to be a 'Num' instance. instance Eq (RealFunction a) where + -- | Nothing else makes sense here; always return 'False'. _ == _ = False + +-- | The 'Num' instance for RealFunction allows us to perform +-- arithmetic on functions in the usual way. instance Num (RealFunction a) where (f1 + f2) x = (f1 x) + (f2 x) (f1 - f2) x = (f1 x) - (f2 x) @@ -22,12 +32,14 @@ instance Num (RealFunction a) where fromInteger i _ = fromInteger i --- Takes a constant, and a function as arguments. Returns a new --- function representing the original function times the constant. +-- | Takes a constant, and a function as arguments. Returns a new +-- function representing the original function times the constant. cmult :: Double -> (RealFunction a) -> (RealFunction a) cmult coeff f = (*coeff) . f --- Takes a function f and an exponent n. Returns a new function, f^n. + +-- | Takes a function f and an exponent n. Returns a new function, +-- f^n. fexp :: (RealFunction a) -> Int -> (RealFunction a) fexp f n | n == 0 = (\_ -> 1)