Quark v2.3.0 Quark.BCKW View Source

The classic BCKW combinators. A similar idea to SKI, but with different primitives.

Link to this section Summary

Functions

b()

Normal (binary) function composition

c()

Reverse (first) two arguments (flip). Aliased as flip

w()

Apply the same argument to a functon twice

Link to this section Functions

Normal (binary) function composition

Examples

iex> sum_plus_one = b(&(&1 + 1), &Enum.sum/1)
iex> [1,2,3] |> sum_plus_one.()
7
Link to this function b(x, y, z) View Source
b((... -> any), (... -> any), any) :: any

Reverse (first) two arguments (flip). Aliased as flip.

Examples

iex> c(&div/2).(1, 2)
2

iex> reverse_concat = c(&Enum.concat/2)
...> reverse_concat.([1,2,3], [4,5,6])
[4,5,6,1,2,3]

iex> flip(&div/2).(1, 2)
2
Link to this function c(fun) View Source
c((... -> any)) :: (... -> any)

Apply the same argument to a functon twice

Examples

iex> repeat = w(&Enum.concat/2)
iex> repeat.([1,2])
[1,2,1,2]

iex> w(&Enum.zip/2).([1,2,3])
[{1, 1}, {2, 2}, {3, 3}]
Link to this function w(fun) View Source
w((... -> any)) :: any