From HaskellWiki
Numbers in Haskell can be of the type
Int, Integer, Float, Double, or Rational
.
1 Rounding numbers
| Problem
| Solution
| Examples
|
| rounding
| round
| round 3.4 --> 3
round 3.5 --> 4
|
find the nearest integer greaterthan or equal to x
| ceiling
|
|
find the nearest integer less than or equal to x
| floor
|
|
2 Taking logarithms
log 2.718281828459045 --> 1.0
logBase 10 10000 --> 4.0
3 Generating random numbers
import System.Random
main = do
gen <- getStdGen
let ns = randoms gen :: [Int]
print $ take 10 ns
4 Binary representation of numbers
import Data.Bits
import Data.List (foldl')
-- Extract a range of bits, most-significant first
bitRange :: Bits a => a -> Int -> Int -> [Bool]
bitRange n lo hi = foldl' (\l -> \x -> testBit n x : l) [] [lo..hi]
-- Extract all bits, most-significant first
bits :: Bits a => a -> [Bool]
bits n = bitRange n 0 (bitSize n - 1)
-- Display a number in binary, including leading zeroes.
-- c.f. Numeric.showHex
showBits :: Bits a => a -> ShowS
showBits = showString . map (\b -> if b then '1' else '0') . bits
5 Using complex numbers
| Problem
| Solution
| Examples
|
| creating a complex number from real and imaginary rectangular components
| (:+)
| import Complex
1.0 :+ 0.0 --> 1.0 :+ 0.0
|
| creating a complex number from polar components
| mkPolar
| import Complex
mkPolar 1.0 pi --> (-1.0) :+ 1.2246063538223773e-16
|