sub returnlazy is lazy { return map { 2*n } 1..Inf; } sub ntheven is lazy { my @evens = returnlazy(); return @evens[shift @_]; } my $se = ntheven(17); print "The seventeenth even number is $se.\n";