Witchcraft v1.0.0-beta.2 Witchcraft.Arrow.Proto protocol View Source
Protocol for the Elixir.Witchcraft.Arrow
type class
For this type class’s API, please refer to Elixir.Witchcraft.Arrow
Link to this section Summary
Functions
Lift a function into an arrow, much like how of/2
does with data
Link to this section Types
Link to this section Functions
Link to this function
arrowize(sample, fun)
View Source
arrowize(Witchcraft.Arrow.t, (... -> any)) :: Witchcraft.Arrow.t
Lift a function into an arrow, much like how of/2
does with data.
Essentially a label for composing functions end-to-end, where instances may have their own special idea of what composition means. The simplest example is a regular function. Others are possible, such as Kleisli arrows.
Examples
iex> use Witchcraft.Arrow
...> times_ten = arrowize(fn -> nil end, &(&1 * 10))
...> 5 |> pipe(times_ten)
50