Enumerable Fork - FireDragon91245/Lua-Linq GitHub Wiki
Branches one source enumerable into multiple downstream consumers. This is useful when you want to compute several results from the same source flow.
enumerable<T> :fork(): enumerable<T>, enumerable<T>
enumerable<K, V>:fork(): enumerable<K, V>, enumerable<K, V>
enumerable<T> :fork(
fork1: fun(enumerable: enumerable<T>): R1,
fork2: fun(enumerable: enumerable<T>): R2
): enumerable<R1 | R2>
enumerable<K, V>:fork(
fork1: fun(enumerable: enumerable<K, V>): R1,
fork2: fun(enumerable: enumerable<K, V>): R2
): enumerable<R1 | R2>
enumerable<T> :fork(
fork1: fun(enumerable: enumerable<T>): R1,
...,
fork10: fun(enumerable: enumerable<T>): R10
): enumerable<R1 | ... | R10>
enumerable<K, V>:fork(
fork1: fun(enumerable: enumerable<K, V>): R1,
...,
fork10: fun(enumerable: enumerable<K, V>): R10
): enumerable<R1 | ... | R10>- The overload set supports either no callbacks, or from 2 through 10 callbacks.
local sum, has_even = linq.list(1, 2, 3, 4):fork(
function(enum)
return enum:collect(function(iter)
local total = 0
for value in iter do
total = total + value
end
return total
end)
end,
function(enum)
return enum:any("n => n % 2 == 0")
end
):spread()local left, right = linq.list(1, 2, 3):fork()