Hello,

you can count me as a newbie in functional programming. I'm attempting to 
define a function that computes the value of x^y for whole numbers. Intuively 
(all efficiency considerations aside) I would start with something like this:

power x y
        | x == 0        = 0
        | y == 0        = 1
        | y > 0         = x * power x (y-1)
        | y < 0         = 1 / fromInteger x * power x (y+1)

One recognizes that the function returns either an integer value if y > 0 or 
a float value if y < 0. Therefore I can't write a signature like 
pow :: Integer -> Integer -> Integer nor can I do 
pow :: Integer -> Integer -> Double. If I would use Python I could write 
something like this:

def power(m, n):
        if m == 0: return 0
        if n == 0: return 1
        if n > 0: return m * power(m, (n-1))
        if n < 0: return (1 / float(m)) * power(m, (n+1))

How then would I write this function in Haskell (concerning types)?

Thanks in advance! Kind regards,
Toralf

_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to