
If you don't care about efficiency, you can define antideriv :: (Int -> Int) -> Int -> Int antideriv f x | x >= 0 = sum [ f y | y <- [0..x-1] ] | x < 0 = - sum [ f y | y <- [x..-1] ] which has the property that antideriv f x1 - antideriv f x0 == sum [f x | x <- [x0..x1-1]] Twan On 19/01/13 19:55, Martin Drautzburg wrote:
Hello all,
not strictly a Haskell question, but anyways ...
is it possible to compute the antiderivative of a function f::Int->Int ?
I understand that you can compute the definite integral by simply summing up the values of f within a given interval.
My first guess would be: no this is not possible. The antiderivative F of a function f::Int->Int needs to have the property that F(b) - F(a) must be the sum of f within [a,b]. To do this I must know all values withib [a,b]. But at the time I compute the antiderivative I do not know this interval yet.
What is striking me is that in calculus I can often symbolically compute the antiderivative and I get a simple function, and I can get the value of F for a given x and I get a simple number. Why is that so?