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

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s