View Source Quark.BCKW (Quark v2.3.3-doma)

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

Examples

iex> sum_plus_one = b(&(&1 + 1), &Enum.sum/1)
iex> [1,2,3] |> sum_plus_one.()
7
@spec b((... -> any()), (... -> any()), any()) :: any()

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

examples

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
@spec c((... -> any())) :: (... -> any())

See Quark.BCKW.c/1.

See Quark.SKI.k/0.

See Quark.SKI.k/1.

See Quark.SKI.k/2.

Apply the same argument to a functon twice

examples

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}]
@spec w((... -> any())) :: any()