Self-describing numbers: Difference between revisions

Content added Content deleted
(→‎{{header|Haskell}}: hlint, hindent – minor tidying)
Line 791: Line 791:


isSelfDescribing :: Integer -> Bool
isSelfDescribing :: Integer -> Bool
isSelfDescribing n =
isSelfDescribing n = nu == f
nu == f where
where
nu = map digitToInt (show n)
nu = digitToInt <$> show n
f = map (\a -> count a nu) [0 .. ((length nu)-1)]
f = (`count` nu) <$> [0 .. length nu - 1]


main :: IO ()
main = do
main = do
print $
let tests = [1210, 2020, 21200, 3211000,
isSelfDescribing <$>
42101000, 521001000, 6210001000]
[1210, 2020, 21200, 3211000, 42101000, 521001000, 6210001000]
print $ map isSelfDescribing tests
print $ filter isSelfDescribing [0 .. 4000000]</lang>
print $ filter isSelfDescribing [0 .. 4000000]</lang>
Output:
Output:
<pre>[True,True,True,True,True,True,True]
<pre>[True,True,True,True,True,True,True]