Haskell Unit 3: Floating-point Numbers and Characters
[Pages:4]Haskell Unit 3: Floating-point Numbers and Characters
Antoni Diller 26 July 2011
Introduction
Haskell has two types for floating-point numbers:
Float single-precision Double double-precision Floating-point numbers can be represented in two ways. First, using a decimal point:
2.0 33.873 -8.3377
Second, by means of the so-called scientific notation:
33.61e6 (equivalent to 33.61 106) 3.7e-2 (equivalent to 3.7 10-2) -3.7e2 (equivalent to -3.7 102)
Haskell has the usual binary infix floating-point operators, namely
+ addition - subtraction * multiplication / division ** exponentiation
It also has the unary prefix operator - (minus or negative) and the following unary prefix operators:
cos sin tan log acos asin atan exp sqrt
cosine sine tangent logarithms to base e inverse cosine inverse sine inverse tangent powers of e square root
1
Haskell has some useful functions for converting floating-point numbers into singleprecision integers:
ceiling 2.3 is equivalent to 3 floor 2.3 is equivalent to 2 round 2.3 is equivalent to 2 round 2.7 is equivalent to 3 These are all of type Float -> Int. The function fromInt of type Int -> Float converts a limited-precision integer into a single-precision floating-point number.
Numerical type classes
So far four numerical types in Haskell have been introduced, namely Int, Integer, Float and Double. It is tedious to define a new function that squares its argument, say, for each numerical type:
sqInt :: Int -> Int sqInt x = x * x
sqInteger :: Integer -> Integer sqInteger x = x * x
sqFloat :: Float -> Float sqFloat x = x * x
sqDouble :: Double -> Double sqDouble x = x * x
Haskell has several type classes which allow one definition to do the work of more than one of the above monomorphic definitions:
sqIntegral :: Integral a => a -> a sqIntegral x = x * x
sqFractional :: Fractional a => a -> a sqFractional x = x * x
sqReal :: Real a => a -> a sqReal x = x * x
The type class Integral contains the two types Int and Integer. The type class Fractional contains the two types Float and Double. The type class Real contains the four types Int, Integer, Float and Double. These, and some other important types, can be represented by the following inclusion diagram:
2
Eq
/\
/\
/
\
/
\
/
\
/
\
Ord
Num
\
/
\
/
\
/
\
/
\/
\/
Real
/\
/\
/
\
/
\
/
\
/
\
Integral Fractional
Characters
The type Char contains characters. Elements of Char are written enclosed in single closing quotation marks, for example:
'a' 'B' '4' '\t' '\n' '\\' '\'' '\"'
tab newline backslash single closing quotation mark double quotation mark
3
There are several useful functions dealing with characters:
toUpper toLower ord chr isAscii isUpper isLower isAlpha isDigit isAlphaNum
Char -> Char Char -> Char Char -> Int
Int -> Char Char -> Bool Char -> Bool Char -> Bool Char -> Bool Char -> Bool Char -> Bool
into ASCII code from ASCII code
4
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- learning haskell
- haddock a haskell documentation tool github pages
- from haskell the craft of functional programming 3rd ed
- single precision floating point format
- the fun of programming yale university
- gpgpu programming in haskell with accelerate
- haskell tutorial
- ieee visweek tutorial 2008 lexical syntax haskell
- basic haskell cheat sheet declaring types and classes
- haskell unit 3 floating point numbers and characters
Related searches
- pick 3 ny midday numbers results
- floating point converter
- geometry unit 3 test answers
- unit 3 frq ap chem
- truncate a floating point in python
- convert string floating point into integer python
- grammar and language workbook grade 7 unit 3 verbs
- decimal to binary floating point calculator
- new york 4 numbers and 3 numbers
- python floating point precision
- python print floating point precision
- string to floating point number python