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
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 (
else Nothing)
n
|