16 lines
322 B
Lua
16 lines
322 B
Lua
local function chainpair(f1, f2)
|
|
return function(chunk)
|
|
local ret = f2(f1(chunk))
|
|
if chunk then return ret
|
|
else return (ret or "") .. (f2() or "") end
|
|
end
|
|
end
|
|
|
|
function filter.chain(...)
|
|
local f = select(1, ...)
|
|
for i = 2, select('#', ...) do
|
|
f = chainpair(f, select(i, ...))
|
|
end
|
|
return f
|
|
end
|