There are actually single combinators which form a complete basis, i.e. from which you can get S and K, and thereby universal computation.
https://en.wikipedia.org/wiki/Combinatory_logic#One-point_ba...
https://en.wikipedia.org/wiki/Combinatory_logic#One-point_ba...
[1] https://books.google.com/books?id=1xEVkzuX5e0C&pg=PA779&lpg=...
A combinator is not just a closed lambda term; it must have all lambdas in leading position. Like S = \x \y \z. x z (y z)
> A combinator [...] must have all lambdas in leading position.
What's your opinion on:
ωabcd = bd(cd) if a has no normal form[0][1]
or = c if b has no normal form
or = d if c has no normal form
or = dd otherwise
where
SII = ωωωω
Ω = SII(SII) = ωωωω(ωωωω)
S = ωΩ = ω(ωωωω(ωωωω))
K = ωωΩ = ωω(ωωωω(ωωωω))
I = ωωωΩ = ωωω(ωωωω(ωωωω))
as a single-'combinator' basis?0: Aka, does not halt.
1: Evaluation diverges if a (or b or c, if queried) is somthing like:
SII(C(C(B(ωωx(KI)K)(SII))Ω)I)
(from https://en.wikipedia.org/wiki/Combinatory_logic#Undecidabili...) that tries to diagonalize ω.