Haskell Radix Conversion using ByteStrings
Another radix conversion, when you need to zippy greatness of Haskell's ByteString.(Haskell strings are slooooow!)
TODO: rewrite this using overloaded strings.
Copy this code and paste it in your HTML
import qualified Data.ByteString.Lazy.Char8 as BS
convertFromDecimal
:: Int -> Int -> BS.ByteString
-> BS.ByteString
convertFromDecimal num toBase accum
| toBase
< 0 = error "base must be greater than zero" | toBase
> 20 = error "base must be <= 20" | num
< 0 = error "number cannot be negative" | num <= 0 = accum
| num > 0 =
let chars = "0123456789ABCDEFGHIJ"
remain
= num `
div` toBase
accum' = BS.cons (chars !! over) accum
in
convertFromDecimal remain toBase accum'
Report this snippet
Comments
Subscribe to comments