what?

it's an evaluator for the ski combinator calculus, which is a turing tarpit using only three combinators:

  • S: Sxyz = xz(yz)
  • K: Kxy = x
  • I: Ix = x, also defined as I=SKK
it's additionally equivalent to alonzo church's lambda calculus:
  • S=λx.λy.λz.((xz)(yz))
  • K=λx.λy.x
  • I=λx.x
being turing-complete, this is mathematically equivalent to any programming language, and can perform any computation. this doesn't mean you have arbitrary code execution though (lol).

how?

some racket

why is this useful?

first off how dare you

notes

  • this will not show output for non-terminating expressions, or expressions that don't evaluate in the time limit
  • evaluation is killed after 5 seconds