Savage Operator

From Esolang
Jump to navigation Jump to search

Savage Operator is a esolang created by User:Yayimhere inspired by Unlambda. as it was developed it became more focused on creating the actual lambdas and less about using the actual operators. so it becomes more like Action symbol

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

so the needed commands are a a' w d