# Quark.BCKW(Quark v2.3.2) View Source

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

# Link to this section Summary

## Functions

Normal (binary) function composition

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

Apply the same argument to a functon twice

# b()

View Source

Normal (binary) function composition

## Examples

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

View Source

View Source

# b(x, y, z)

View Source

## Specs

b((... -> any()), (... -> any()), any()) :: any()

# c()

View Source

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

# c(fun)

View Source

## Specs

c((... -> any())) :: (... -> any())

# flip(fun)

View Source

See Quark.BCKW.c/1.

# k()

View Source

See Quark.SKI.k/0.

# k(a)

View Source

See Quark.SKI.k/1.

# k(a, b)

View Source

See Quark.SKI.k/2.

# w()

View Source

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}]