11 lines
277 B
Text
11 lines
277 B
Text
open number
|
|
|
|
_ ^ 0 = 1
|
|
x ^ n | n > 0 = f x (n - 1) x
|
|
|else = fail "Negative exponent"
|
|
where f _ 0 y = y
|
|
f a d y = g a d
|
|
where g b i | even i = g (b * b) (i `quot` 2)
|
|
| else = f b (i - 1) (b * y)
|
|
|
|
(12 ^ 4, 12 ** 4)
|