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 ...

Get Haskell Data Analysis Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.