20 lines
471 B
Lua
20 lines
471 B
Lua
--returns an iterator over the first n copies of the look-and-say sequence
|
|
function lookandsayseq(n)
|
|
local t = {1}
|
|
return function()
|
|
local ret = {}
|
|
for i, v in ipairs(t) do
|
|
if t[i-1] and v == t[i-1] then
|
|
ret[#ret - 1] = ret[#ret - 1] + 1
|
|
else
|
|
ret[#ret + 1] = 1
|
|
ret[#ret + 1] = v
|
|
end
|
|
end
|
|
t = ret
|
|
n = n - 1
|
|
if n > 0 then return table.concat(ret) end
|
|
end
|
|
end
|
|
for i in lookandsayseq(10) do print(i) end
|