29 lines
546 B
Plaintext
29 lines
546 B
Plaintext
func gen_pow(m) {
|
|
var e = 0;
|
|
func { e++ ** m };
|
|
}
|
|
|
|
func gen_filter(g1, g2) {
|
|
var v2 = g2.run;
|
|
func {
|
|
loop {
|
|
var v1 = g1.run;
|
|
while (v1 > v2) { v2 = g2.run };
|
|
v1 == v2 || return v1;
|
|
}
|
|
}
|
|
}
|
|
|
|
# Create generators.
|
|
var squares = gen_pow(2);
|
|
var cubes = gen_pow(3);
|
|
var squares_without_cubes = gen_filter(squares, cubes);
|
|
|
|
# Drop 20 values.
|
|
20.times { squares_without_cubes() };
|
|
|
|
# Print 10 values.
|
|
var answer = [];
|
|
10.times { answer.append(squares_without_cubes()) };
|
|
say answer;
|