%I #18 Nov 03 2020 01:40:12
%S 22222,12222,11222,11122,11112,11111,21111,22111,22211,22221,
%T 12222022222,12222012222,12222011222,12222011122,12222011112,
%U 12222011111,12222021111,12222022111,12222022211,12222022221,11222022222,11222012222,11222011222,11222011122,11222011112,11222011111
%N Numbers in Morse code, with 1 for a dot, 2 for a dash and 0 between digits/letters.
%H Reinhard Zumkeller, <a href="/A060109/b060109.txt">Table of n, a(n) for n = 0..10000</a>
%H Wikipedia, <a href="http://en.wikipedia.org/wiki/Morse_code">Morse code</a>
%F a(n) A007089(A060110(n)) = a(floor(n/10))*10^6 + a(n%10) for n > 9 and a(n) = 33333 - a(n-5) for n%10 > 4, where % is the modulo (remainder) operator. - _M. F. Hasler_, Jun 22 2020
%e a(10) = 12222022222 since 1 is ".----" and 0 is "-----".
%t With[{a = Association@ Array[# -> If[# < 6, PadRight[ConstantArray[1, #], 5, 2], PadRight[ConstantArray[2, # - 5], 5, 1]] &, 10, 0]}, Array[FromDigits@ Flatten@ Riffle[Map[Lookup[a, #] &, IntegerDigits[#]], 0] &, 25]] (* _Michael De Vlieger_, Nov 02 2020 *)
%o (Haskell)
%o import Data.List (inits, tails)
%o a060109 n = if n == 0 then 22222 else read (conv n) :: Integer where
%o conv 0 = []
%o conv x = conv x' ++ mCode !! d where (x', d) = divMod x 10
%o mCode = map ('0' :) (mc ++ (reverse $ init $ tail $ map reverse mc))
%o mc = zipWith (++) (inits "111111") (tails "22222")
%o -- _Reinhard Zumkeller_, Feb 20 2015
%o (PARI) apply( {A060109(n)=if(n>9,self()(n\10)*10^6)+fromdigits([1+(abs(k-n%10)>2)|k<-[3..7]])}, [0..39]) \\ _M. F. Hasler_, Jun 22 2020
%Y Cf. A059852 (Morse code for letters), A008777 (number of dots and dashes).
%Y Cf. A060110 (these base-3 numbers converted to decimal), A321332 (duration of the code for n).
%K base,nonn
%O 0,1
%A _Henry Bottomley_, Feb 28 2001