RosettaCodeData/Task/Generator-Exponential/R/generator-exponential.r

26 lines
532 B
R

powers = function(m)
{n = -1
function()
{n <<- n + 1
n^m}}
noncubic.squares = local(
{squares = powers(2)
cubes = powers(3)
cube = cubes()
function()
{square = squares()
while (1)
{if (square > cube)
{cube <<- cubes()
next}
else if (square < cube)
{return(square)}
else
{square = squares()}}}})
for (i in 1:20)
noncubic.squares()
for (i in 1:10)
message(noncubic.squares())