/ Published in: Haskell
Another radix conversion, when you need to zippy greatness of Haskell's ByteString.(Haskell strings are slooooow!)
TODO: rewrite this using overloaded strings.
- import qualified Data.ByteString.Lazy.Char8 as BS
- 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"
- over = num `mod` toBase
- remain = num `div` toBase
- accum' = BS.cons (chars !! over) accum
- convertFromDecimal remain toBase accum'
You need to login to post a comment.