Book Image

Haskell Data Analysis Cookbook

By : Nishant Shukla
Book Image

Haskell Data Analysis Cookbook

By: Nishant Shukla

Overview of this book

Table of Contents (19 chapters)
Haskell Data Analysis Cookbook
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Displaying a number in another base


Strings are a natural way to represent numbers in different bases due to the inclusion of letters as digits. This recipe will tell us how to convert a number to a string that can be printed as output.

How to do it...

  1. We will need to import the following two functions:

    import Data.Char (intToDigit, chr, ord) 
    import Numeric (showIntAtBase)
  2. Define a function to represent a number in a particular base as follows:

    n 'inBase' b = showIntAtBase b numToLetter n ""
  3. Define the mapping between numbers and letters for digits larger than nine as follows:

    numToLetter :: Int -> Char
    numToLetter n
      | n < 10 = intToDigit n
      | otherwise = chr (ord 'a' n – 10)
  4. Print out the result using the following code snippet:

    main :: IO ()
    main = do
      putStrLn $ 8 'inBase' 12
      putStrLn $ 10 'inBase' 12
      putStrLn $ 12 'inBase' 12
      putStrLn $ 47 'inBase' 12
  5. The following is the printed output when running the code:

    $ runhaskell Main.hs
    
    8
    a
    10
    3b
    

How it works...

The showIntAtBase function...