x ^ n :: Double -> Int -> Double

Here’s a Haskell implementation of a power function, x ^ n, where x is a double and n is an int.

 

import Text.Printf 
import Data.Char

toBits :: Int -> [Int]
toBits x= reverse (map (\x->ord x - 48) (printf "%b" x) )

pown x n = 
	product $ 
	filter (>0) $ 
	zipWith (*) 
		(map toInteger$toBits n) 
		(iterate (\x->x*x) x)

main = print $ pown 2 14

Leave a comment