42 lines
684 B
Plaintext
42 lines
684 B
Plaintext
T Generator
|
||
F.virtual.abstract next() -> Float
|
||
|
||
T PowersGenerator(Generator)
|
||
i = 0.0
|
||
Float e
|
||
|
||
F (e)
|
||
.e = e
|
||
|
||
F.virtual.assign next() -> Float
|
||
V r = .i ^ .e
|
||
.i++
|
||
R r
|
||
|
||
T Filter
|
||
Generator gen, filter
|
||
Float lastG, lastF
|
||
|
||
F (Generator gen, filter)
|
||
.gen = gen
|
||
.filter = filter
|
||
.lastG = .gen.next()
|
||
.lastF = .filter.next()
|
||
|
||
F ()()
|
||
L .lastG >= .lastF
|
||
I .lastG == .lastF
|
||
.lastG = .gen.next()
|
||
.lastF = .filter.next()
|
||
|
||
V out = .lastG
|
||
.lastG = .gen.next()
|
||
R out
|
||
|
||
V gen = Filter(PowersGenerator(2), PowersGenerator(3))
|
||
|
||
L 20
|
||
gen()
|
||
L 10
|
||
print(gen(), end' ‘ ’)
|