[Haskell-cafe] Re: Hit a wall with the type system
cdsmith at twu.net
Thu Nov 29 00:20:09 EST 2007
Luke Palmer wrote:
> I don't see why this should be true. Int -> Int is an instance of this type,
> but derivatives require limits, which integers don't have. Do you intend to
> output the difference sequence of the function in this case?
> But then Double -> Double is also an instance of this type. Do you intend
> to approximate the real derivative when it's specialized to this?
> Instead of worrying about the types, first tell us what semantics you want.
I intend to naively treat each function as being from the reals to the
reals, and then take advantage of the fact (which is proven by the type
system in the code I posted) that when the derivative is evaluated at
integer inputs for functions defined using only ring operations, the
result is an integer (and similarly for rationals and field operations).
Note that the functions here are defined over real numbers rather than
*merely* intervals, because the type given for diffNum, for example,
requires that the first parameter be no more specific than
Num a => a -> a... so one may not actually pass in a function of type
Int -> Int and expect the code to compile.
More information about the Haskell-Cafe