• I x → x

    • Identity function
  • K x y → x

    • Constant functions
  • S x y z → (x z) (y z)

    • Generalized function application
  • Loop

    • (S I I) (S I I)
    • (S I I) (S I I) → (I (S I I)) (I (S I I)) →(S I I) (I (S I I)) → (S I I) (S I I)
  • Recursion

    • x = S (K f) (S I I)
    • S I I x → * x x = S (K f) (S I I) x → ((K f) x) ((S I I) x) → * f (x x) → * f (f (x x))
  • Consider a function equation of one variable:

    • If we apply function to argument , the result is
  • We want a combinator that implements

    • Therefore
    • And doesn’t use
    • We say we abstract with respect to
    • if does not appear in
  • Note is not a combinator

    • It is a (recursively defined) mapping from expressions with variables to combinators