Non-decimal radices/Output: Difference between revisions

→‎{{header|Haskell}}: (used Array Int Char for digits, rather than [Char])
(→‎{{header|Haskell}}: (a less partial draft of intToDigits))
(→‎{{header|Haskell}}: (used Array Int Char for digits, rather than [Char]))
Line 573:
Or, generalising and tabulating a little:
<lang haskell>import Data.Monoid ((<>))
import Data.Array (Array, listArray, (!))
import Data.List (unfoldr, transpose, intercalate)
 
Line 581 ⟶ 582:
tableRows :: [[String]]
tableRows = ((([intToDigits] <*> bases) <*>) . return) <$> [1 .. 33]
 
digits :: Array Int Char
digits = listArray (0, ds = take b35) (['0' .. '9'] <> ['A' .. 'Z'])
 
intToDigits :: Int -> Int -> String
intToDigits base n =
let b = abs base
ds = take b (['0' .. '9'] <> ['A' .. 'Z'])
in if b <= 36
then reverse $
Line 592 ⟶ 595:
if x > 0
then let (q, r) = quotRem x b
in Just (dsdigits !! r, q)
else Nothing)
n
9,658

edits