Quark v2.2.0 Quark.SKI
The classic SKI
system of combinators. s
and k
alone can be used to express any algorithm,
though generally not efficiently.
Summary
Functions
The identity combinator. Also aliased as id
See Quark.SKI.i/1
The constant (“Konstant”) combinator. Returns the first argument unchanged, and discards the second argument
The “substitution” combinator. Applies the last argument to the first two, and then the first two to each other
Opposite of first
(the k
combinator)
Functions
See Quark.SKI.k/2
.
See Quark.SKI.k/2
.
The identity combinator. Also aliased as id
.
iex> i(1)
1
iex> i("identity combinator")
"identity combinator"
iex> [1,2,3] |> id
[1,2,3]
See Quark.SKI.i/1
.
The constant (“Konstant”) combinator. Returns the first argument unchanged, and discards the second argument.
Can be used to repeatedly apply the same value in functions such as folds.
Aliased as first
and constant
.
Examples
iex> k(1, 2)
1
iex> k("happy", "sad")
"happy"
iex> Enum.reduce([1,2,3], [42], &k/2)
3
iex> Enum.reduce([1,2,3], [42], &constant/2)
3
iex> first(1,2)
1
The “substitution” combinator. Applies the last argument to the first two, and then the first two to each other.
Examples
iex> add = &(&1 + &2)
...> double = &(&1 * 2)
...> s(add, double, 8)
24