Fwd: [Haskell-cafe] A simple question

Henning Thielemann iakd0 at clusterf.urz.uni-halle.de
Wed Nov 3 07:35:16 EST 2004


On Wed, 3 Nov 2004, Marc Charpentier wrote:

> Thank you all for the friendly and helpful explanations - and for your 
> patience.
> 
> The solution to my problem is finally
> 
> 		f :: Double -> Double
> 		f i = (-1)**i/(2**(10*i)) * (-2^5/(4*i+1)-1/(4*i+3)+2^8/(10*i+1) 
> -2^6/(10*i+3)-2^2/(10*i+5)-2^2/(10*i+7)+1/(10*i+9))

I'm afraid that you will get problems with negative bases if you use (**) 
which allows fractional exponents. If your function is inherently based on
positive integer i's you should stick to (^). Further on you should use
one of the signatures

 f :: Integral a => a -> Double
 f :: Int -> Double
 f :: Integer -> Double

to assert statically that f will always receive integer values and nothing
else. 



More information about the Haskell-Cafe mailing list