Ir al contenido principal

Sucesión de dígitos 0 y 1 alternados

Los primeros términos de la sucesión de los dígitos 0 y 1 alternados son

0
1
10
101
1010
10101
101010
1010101
10101010
101010101

Definir la lista

sucAlternada :: [Integer]

tal que sus elementos son los términos de la sucesión de los dígitos 0 y 1 alternados. Por ejemplo,

λ> take 10 sucAlternada
[0,1,10,101,1010,10101,101010,1010101,10101010,101010101]

Soluciones

sucAlternada :: [Integer]
sucAlternada =
  map read (['0'] : [take n cadenaAlternada | n <- [1..]])

-- cadenaAltenada es la cadena formada alternando los caracteres 1 y
-- 0. Por ejemplo,
--    take 20 cadenaAlternada  ==  "10101010101010101010"
cadenaAlternada :: String
cadenaAlternada = cycle ['1','0']

Referencias