Lazy

Created by User:MagiMaster in 2006 (and conceived much earlier). Its main goal is to use lazy evaluation and have functions as first-class objects. Also, it tries to do everything as a function definition.

Currently this specification is incomplete.

Example
A simple example is the cat program: main=output(input)

Another example: fib(0)=1 fib(1)=1 fib(n)=+(fib(-(n,1)),fib(-(n,2))) main=output(fib(input))

Built-in functions

 * +(x,y), -(x,y), *(x,y), /(x,y), %(x,y)
 * input, output(n)

Computational class
Lazy is Turing-complete as it includes the &mu;-recursive functions. To show this, the only non-trivial function to define is &mu;y f(y,x1,...,xk) (which does not actually have y as parameter, y is bound by the &mu;), which for a specific f can be given as follows:

&mu;y f(y,x1,...,xk) = g(0,x1,...,xk) g(n,x1,...,xk) = if0(f(n,x1,...,xk),n,g(+(n,1),x1,...,xk)) if0(0,a,b) = a if0(n,a,b) = b