June 2018 Update

This commit is contained in:
Ingy döt Net 2018-06-22 20:57:24 +00:00
parent ba8067c3b7
commit 22f33d4004
5278 changed files with 84726 additions and 14379 deletions

View file

@ -1,16 +1,20 @@
drop(n, gen) = (for i=1:n gen() end ; gen)
drop(gen::Function, n::Integer) = (for _ in 1:n gen() end; gen)
take(gen::Function, n::Integer) = collect(gen() for _ in 1:n)
take(n, gen) = [gen() for i=1:n]
pgen(n) = let x=0; () -> (x+=1)^n; end
function genfilter(gen1, gen2)
let r1 = -Inf, r2 = gen2()
() -> begin
r1 = gen1()
while r2 < r1 r2 = gen2() end
while r1 == r2 r1 = gen1() end
r1
end
end
function pgen(n::Number)
x = 0
return () -> (x += 1) ^ n
end
function genfilter(g1::Function, g2::Function)
local r1
local r2 = g2()
return () -> begin
r1 = g1()
while r2 < r1 r2 = g2() end
while r1 == r2 r1 = g1() end
return r1
end
end
@show take(drop(genfilter(pgen(2), pgen(3)), 20), 10)