ParallelStream
Parallel stream implementation for Elixir.
Summary
Functions
Creates a stream that will apply the given function on enumeration in parallel. The functions return value will be thrown away, hence this is useful for producing side-effects
Creates a stream that will apply the given function on enumeration in parallel and only pass the values for which the function returns truthy downstream
Creates a stream that will apply the given function on enumeration in parallel and return the functions return value
Creates a stream that will apply the given function on enumeration in parallel and only pass the values for which the function returns falsy downstream
Functions
Creates a stream that will apply the given function on enumeration in parallel. The functions return value will be thrown away, hence this is useful for producing side-effects.
Options
These are the options:
:num_pipes
– The number of parallel operations to run when running the stream.
Examples
Iterate and write the numbers to stdout:
iex> parallel_stream = 1..5 |> ParallelStream.each(&IO.write/1)
iex> parallel_stream |> Enum.to_list
12345
[1,2,3,4,5]
Creates a stream that will apply the given function on enumeration in parallel and only pass the values for which the function returns truthy downstream.
Options
These are the options:
:num_pipes
– The number of parallel operations to run when running the stream.
Examples
Map and filter the even numbers:
iex> parallel_stream = 1..5 |> ParallelStream.filter(fn i -> i |> rem(2) == 0 end)
iex> parallel_stream |> Enum.to_list
[2,4]
Creates a stream that will apply the given function on enumeration in parallel and return the functions return value.
Options
These are the options:
:num_pipes
– The number of parallel operations to run when running the stream.
Examples
Map and duplicate the numbers:
iex> parallel_stream = 1..5 |> ParallelStream.map(fn i -> i * 2 end)
iex> parallel_stream |> Enum.to_list
[2, 4, 6, 8, 10]
Creates a stream that will apply the given function on enumeration in parallel and only pass the values for which the function returns falsy downstream.
Options
These are the options:
:num_pipes
– The number of parallel operations to run when running the stream.
Examples
Map and reject the even numbers:
iex> parallel_stream = 1..5 |> ParallelStream.reject(fn i -> i |> rem(2) == 0 end)
iex> parallel_stream |> Enum.to_list
[1,3,5]