Plan 9 from Bell Labs’s /usr/web/sources/contrib/fernan/nhc98/src/prelude/Prelude/NumRaise.hs

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


module Prelude where

infixr 8  ^

(^)		:: (Num a, Integral b) => a -> b -> a

x ^ 0 		= 1
x ^ n | n > 0 	= f x (n-1) x
		  where f _ 0 y = y
			f x n y = g x n
                                  where  g x n | even n    = g (x*x) (n `quot` 2)
       			                       | otherwise = f x (n-1) (x*y)
_ ^ _		= error "Prelude.(^): negative exponent"


Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].