; ;;

From Esolang
Jump to navigation Jump to search
Not to be confused with ;;;.

;;; (also ;`!;`;;, //\n//, 2D///,) is an esolang similar to /// with the only difference being it's 2d.

Program flow

the IP starts at (0,0), with its direction right at first. It is initially at the print stage.

There are "a few" more metacharacters than ///:\

  • !/\^v<>is same as in ><>
  • \ in the original /// is repllaced by ` and skips the next character (ie ```/`\`!@< prints `/\! once)
  • / in the original /// is repllaced by ;
  • (space) is now a no-op
  • @ halts the whole program
  • # prints a newline and isn't treated as a normal character
  • the code wraps around in 4 directions

Also, the substitution now does at a per-line (per-column) basis and only substitutes in the area of the ip direction, for example, if the IP is at the square I, its direction right, and the pattern string is dollar,replacement string is yuand, then

ddollar
dIollar
dollar dolladollarollar
ddiollarollar
dodollarolladdollarollar

will be replaced with

ddollar

dIollar dollar dollayuanyuand ddiollarollar

doyuandolladyuanyuand

because the "replacement space" is marked in "R" as follows:

ddRRRRR
dIRRRRR
doRRRRRRRRRRRRRRRRRRRRR
ddRRRRRRRRRRR
doRRRRRRRRRRRRRRRRRRRRRRRR

and if the ip direction is up, and the pattern string is abab,replacement string is baXab then

baabbba
abbbabb
babbbba
bbabaab
aaaabba
bbbbaIb
aabaaaa

will be replaced with

baabbba

abbbabb babbXba bXabaaX aaaabba bbbbbIb abbaaab

a a a

the replacement space is as follows:

RRRRRRR
RRRRRRR
RRRRRRR
RRRRRRR
RRRRRRR
bbbbaIb
aabaaaa

and because the "abab" from (6,6) to (6,3) is not completely in the replacement space, it don't get replaced.

Computational class

Obviously it's a "superset" of /// with only /\ (with \/ -> `;). so it is Turing-complete

Examples

a "yes" program

y#

Hello, World!

Hello,` World`!@

looping counter

>#!v                                      ?$ !!!!!! !!!!!!!!!  v
^  >;?$;AB; ;BA;B; ;A;*; ;B;*; ;`!`!;`#`!;
^                                         ?$ ;$?;*; ;!`#`;!`!`;<

This example uses 2d-nesss of the language. Untested.

Implementations

This is still a work in progress. It may be changed in the future.