Savage Operator

From Esolang
Jump to navigation Jump to search

Savage Operator is a esolang created by User:Yayimhere inspired by Unlambda

syntax form

a operator is applied with Prefix notation like in Unlambda and brackets around a string e:

(e)

operators

some of these are represented with Lambda calculus expressions. also all these expressions have input x, and if there is a second input that is y:

  • e : a lambda expression with no body. can't be the final result nor be applied to something
  • v : λx.v
  • E : λx.x (λx. ) which can also not be the final result
  • i : λx.x
  • ε : λx.ε x
  • w : (λx.(x))
  •  : evaluate x
  • ∞' : evaluate x for a single iteration
  • a : λx.λy.x y without evaluating it
  • a' : a but goes into brackets, without evaluating it
  • b' : a' but prepend
  • d : rename all instances of x(including in input) in expression y as z
  • [(x)(y)(z)] : x=λz.y or x=y if z is empty

exclusions

  • and ∞' cant be applied to: [(x)(y)(z)], e, and E
  • b', a', d, and a cant be applied to: , ∞', a', b', [(x)(y)(z)], d

Turing-completeness

Savage Operator is turing complete since we can define SKI combinator calculus operators:

[(S)(a’ (a’ (w (a g x) ) (a f x) (a’ (d x e f) (d x e g))) )(f)]
[(K)(a’ (d x e y) y)(x)]
and I is just... i

now any expression in SKI calculus is valid in Savage operator. these work by creating functions that are equal to the S and K operators