()NEST()
()NEST() is a very simple two command esolang/Cellular automaton(CA) made by User:Yayimhere when he was bored. Also a ()NEST() program will not halt unless its told to by the code pointer
how it works
The code is layed out on a 2d infinite grid. There are two commands:
( and )
These commands well do stuff. If a (
Has a )
To the right of it, it will copy itself like this(yes the space is required):
() -> ()(
And if a )
Has a (
Next to it IT will copy itself:
)( -> )( )
But if there is a ( )
Next to it it will put it on the line below like this:
)( ) -> ) ( )
If there is a newline after a () it will copy itself to the line below. this transfers the newline to the line below:
() -> () ()
If this pattern emerges:
()() ()
It will become:
()( ) ()
If a ( )
Is moved down onto a ()
It will encase the ()
:
()( ) ->*moves down*-> () () (())
And if there is a ()
Above a ( )
It will move up to it:
() -> (()) ( )
And last but not least if there is a ()
left to a (())
The outer brackets move down:
()(()) -> () () ( )
Also there is a pointer that just jump between all the ( )
‘s(it starts at the highest leftmost bracket pair and ends at the lowest rightmost)
(Anything else than other brackets can be there and the pointer will still jump). If a non bracket is landed on by the code pointer it will print it. BUT if it hits a V
It will halt execution and a N
will print a newline. Also if a rule that moves something DOWN or UP can be done but there is also something else that can be done the thing that moves UP and or DOWN will be done. If some bracekts wants to be placed in place of some other brackets it will not happen. there ia also []
which will work normally BUT they copy the symbol inside it into the cell below. they copy to other []
's
examples
Hello, world!:
(H) (e) (l) (l) (o) (,) ( ) (w) (o) (r) (l) (d) (V)
Osc(2 step):
()(())
Step 1:
()(())
Step 2:
() () ( )
Step 3:
()(())
[*] [][* [] * [] (N)
this is my first indicator that maybe ()NEST() is turing complete. it can use memory up like that so...